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.