Atualizar a versão do nó no Visual Studio 2017


91

Alguém conhece uma maneira sancionada de atualizar o Node no Visual Studio 2017? Eu tenho o Nó 6 configurado no meu PC de desenvolvimento, mas o VS2017 parece vir com uma cópia empacotada do Nó 5, o que significa que rodar npm installna minha linha de comando configura vários pacotes como node-sassligações para o Nó 6, então quando eu executar o gulp tarefas do VS Task Runner caem devido às versões incompatíveis.

Encontrei a instalação do VS Node em, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\Externalmas estou um pouco relutante em apenas hackear e substituí-lo. Alguém tem alguma experiência em atualizar isso? Eu sei que posso sincronizar desatualizando a versão no meu PC, mas isso parece estar para trás.


1
O principal resultado do Google para 'versão de nó de estúdio visual' parece que pode resolver o problema
Joe Clay

2
@JoeClay é para o VS2015, as coisas mudaram no VS2017. Já experimentei o Google ...
Henry Wilson

3
Ah, acabei de abrir o VS, a opção mudou ...
Joe Clay

Este github.com/aspnet/JavaScriptServices/issues/1686 também está relacionado, o que significa que a localização do nodejs deve estar presente na variável de caminho do sistema.
Atiq Rahman

Respostas:


159

Vamos para:

Ferramentas> Opções> Projetos e soluções> Gerenciamento de pacotes da web> Ferramentas externas da web

Em seguida, você precisa adicionar seu diretório de instalação do Node ao topo da lista, assim:

captura de tela


Não tenho certeza do que isso faz, pois não atualizou nada.
desenhou em

34
Como alternativa que funcionou para mim, basta aumentar o $ (PATH) um, para que ele substitua o diretório Web \ Externo (assumindo que o nó está instalado no caminho do seu ambiente)
Leniência

O meu funcionou fazendo o que afirma a resposta No entanto, esta é a segunda vez que esse problema aconteceu, a primeira vez que foi resolvido usando o comentário de @ Leniency. :)
Imdad de

1
"substitui" ou talvez "precede"
N73k

@Leniency funcionou muito bem para mim - uma extensão de nó (NPM Task Runner de Mads) estava usando uma versão diferente (VS) de nó e estava falhando - obrigado!
Michael Harper de

52

Você não precisa adicionar um novo diretório de instalação do Node, o Node existe no PATH. Observe como $ (PATH) está abaixo do caminho interno $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External .

Para usar a variável de ambiente global PATH antes do caminho interno, você pode apenas usar as setas no canto superior direito para alterar a ordem.

Isso é o que parece quando o PATH global é pesquisado antes do interno e, portanto, fará o Visual Studio usar suas próprias versões das ferramentas. insira a descrição da imagem aqui


Obrigado. Isso funcionou muito bem e eu prefiro adicionar o diretório nodejs.
Tim Turner

Isso funcionou para mim. Alguns pacotes acabaram ficando antes de '$ (PATH)', mas quando movi '$ (PATH)' para baixo de '. \ Node_modules \ .bin' gulp começou a funcionar novamente e recuperei meus ícones de aplicativos da web :)
Phil

0

Para mim, o problema era que havia um node.exearquivo local no mesmo diretório em que o csprojarquivo estava, junto com um node.exe.configarquivo.

Tive um evento pós-compilação que chamaria gulppara fazer algum outro trabalho e o VS2017 usaria o node.exearquivo local em vez do que estava listado na minha $(PATH)variável. Esta era uma versão anterior do nó que eu não queria usar, então a solução para mim era remover o local node.exepara que o listado em $(PATH)fosse usado ou atualizar o node.exearquivo local se node.exe.configrealmente necessário.

Eu só queria adicionar isso aqui, caso outra pessoa tenha o mesmo problema.


0

Parece que as opções em

Ferramentas> Opções> Projetos e soluções> Gerenciamento de pacotes da web> Ferramentas externas da web

não tem efeito. No entanto, é possível definir a versão do Node através de

Projeto> Propriedades

Captura de tela do projeto> propriedades

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.