Zaktualizuj wersję węzła w programie Visual Studio 2017


91

Czy ktoś zna usankcjonowany sposób aktualizowania węzła w programie Visual Studio 2017? Mam skonfigurowany Node 6 na moim komputerze deweloperskim, ale VS2017 wydaje się być dostarczany z dołączoną kopią Node 5, co oznacza, że ​​uruchomienie npm installw moim wierszu poleceń konfiguruje różne pakiety, takie jak node-sasswiązania dla Node 6, więc kiedy uruchamiam gulp zadania z VS Task Runner wypadają z powodu niezgodnych wersji.

Znalazłem instalację VS Node pod adresem, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\Externalale jestem trochę niechętny, aby po prostu włamać się i wymienić. Czy ktoś ma jakieś doświadczenie w ulepszaniu tego? Wiem, że mogę zsynchronizować, obniżając wersję na moim komputerze, ale wydaje się to wstecz.


1
Najlepszy wynik Google dla „wersji węzła Visual Studio” wydaje się, że może to załatwić: ryanhayes.net/…
Joe Clay

2
@JoeClay to dla VS2015, rzeczy uległy zmianie w VS2017. Próbowałem już Google ...
Henry Wilson

3
Ach, właśnie otworzyłem VS, opcja się przesunęła ...
Joe Clay

Ten github.com/aspnet/JavaScriptServices/issues/1686 jest również powiązany, co oznacza, że ​​lokalizacja nodejs musi być obecna w zmiennej Path systemu.
Atiq Rahman

Odpowiedzi:


159

Iść do:

Narzędzia> Opcje> Projekty i rozwiązania> Zarządzanie pakietami sieci Web> Zewnętrzne narzędzia internetowe

Następnie musisz dodać katalog instalacyjny Node na górę listy, na przykład:

zrzut ekranu


Nie jestem pewien, co to robi, ponieważ nic nie zaktualizowało.
drewid

34
Jako alternatywa, która zadziałała dla mnie, po prostu podbij $ (PATH) w górę, aby zastąpił katalog Web \ External (zakładając, że węzeł jest zainstalowany na twojej ścieżce środowiska)
Leniency

Mój działał, robiąc to, co stwierdza odpowiedź. Jest to jednak drugi przypadek wystąpienia tego problemu, po raz pierwszy został on rozwiązany za pomocą komentarza @ Leniency. :)
Imdad

1
„supercedes” lub może „poprzedza”
N73k,

@Leniency zadziałało dla mnie nie lada gratką - rozszerzenie węzła (NPM Task Runner autorstwa Madsa) używało innej (VS) wersji węzła i zawodziło - dzięki!
Michael Harper,

52

Nie musisz dodawać nowego katalogu instalacyjnego węzła, węzeł istnieje w PATH. Zwróć uwagę, że $ (PATH) znajduje się poniżej wewnętrznej ścieżki $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External .

Aby użyć globalnej zmiennej środowiskowej PATH przed ścieżką wewnętrzną, możesz po prostu użyć strzałek w prawym górnym rogu, aby zmienić kolejność.

Tak to wygląda, gdy globalna PATH jest przeszukiwana przed wewnętrzną i dlatego program Visual Studio użyje własnych wersji narzędzi. wprowadź opis obrazu tutaj


Dziękuję Ci. To działało świetnie i wolę to od dodawania katalogu nodejs.
Tim Turner,

To zadziałało dla mnie. Jakiś pakiet znalazł się przed '$ (PATH)', ale kiedy przeniosłem '$ (PATH)' pod spodem '. \ Node_modules \ .bin' znowu zaczął działać i odzyskałem ikony aplikacji internetowej :)
Phil

0

U mnie problem polegał node.exena tym, że w tym samym katalogu, w którym csprojznajdował się plik, znajdował się plik lokalny , wraz z node.exe.configplikiem.

Miałem zdarzenie po kompilacji, które zadzwoniłoby gulpdo wykonania innej pracy, a VS2017 użyłby node.exepliku lokalnego , a nie tego, co było wymienione w mojej $(PATH)zmiennej. To była wcześniejsza wersja węzła, której nie chciałem używać, więc rozwiązaniem dla mnie było usunięcie lokalnego, node.exeaby $(PATH)można było użyć tego wymienionego w , lub zaktualizowanie lokalnego node.exepliku, jeśli node.exe.configjest naprawdę potrzebny.

Chciałem tylko to dodać na wypadek, gdyby ktoś inny napotkał ten sam problem.


0

Wygląda na to, że opcje w

Narzędzia> Opcje> Projekty i rozwiązania> Zarządzanie pakietami sieci Web> Zewnętrzne narzędzia internetowe

nie mają żadnego efektu. Możliwe jest jednak ustawienie wersji węzła za pośrednictwem

Projekt> Właściwości

Projekt> zrzut ekranu właściwości

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.