Обновить версию узла в Visual Studio 2017

91

Кто-нибудь знает о санкционированном способе обновления Node в Visual Studio 2017? У меня есть Node 6, установленный на моем ПК для разработки, но VS2017, похоже, поставляется с связанной копией Node 5, что означает, что запуск npm installв моей командной строке устанавливает различные пакеты, такие как node-sassпривязки для Node 6, поэтому, когда я затем запускаю gulp задачи из VS Task Runner не работают из-за несовпадающих версий.

Я обнаружил, что VS Node установлен, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\Externalно мне не очень хочется просто взломать и заменить его. У кого-нибудь есть опыт обновления этого? Я знаю, что могу выполнить синхронизацию, понизив версию на моем ПК, но это кажется обратным.

Генри Уилсон
источник
1
Лучший результат Google для 'версии Visual Studio node', похоже, может помочь: ryanhayes.net/…
Джо Клей
2
@JoeClay для VS2015, в VS2017 все изменилось. Я уже пробовал Google ...
Генри Уилсон
3
Ах, я только что открыл VS, вариант переехал ...
Джо Клей
Этот github.com/aspnet/JavaScriptServices/issues/1686 также связан, что означает, что местоположение nodejs должно присутствовать в переменной System Path.
Атик Рахман

Ответы:

159

Перейти к:

Инструменты> Параметры> Проекты и решения> Управление веб-пакетами> Внешние веб-инструменты

Затем вам нужно добавить каталог установки Node в начало списка, например:

снимок экрана

Джо Клей
источник
Не уверен, что это делает, так как ничего не обновлялось.
drewid
34
В качестве альтернативы, которая сработала для меня, просто увеличьте $ (PATH) на один, чтобы он заменил каталог Web \ External (при условии, что узел установлен на пути к вашей среде)
Мягкость
Моя работала, выполняя то, что говорится в ответе. Однако это второй раз, когда эта проблема возникла, впервые она была решена с помощью комментария @ Leniency. :)
Imdad
1
«превосходит» или, может быть, «предшествует»
N73k 07
@Lencence это сработало для меня - расширение узла (NPM Task Runner от Mads) использовало другую (VS) версию узла и не работало - спасибо!
Майкл Харпер
52

Вам не нужно добавлять новый установочный каталог Node, Node существует в PATH. Обратите внимание, что $ (PATH) находится ниже внутреннего пути $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External .

Чтобы использовать глобальную переменную среды PATH перед внутренним путем, вы можете просто использовать стрелки в правом верхнем углу, чтобы изменить порядок.

Вот как это выглядит, когда глобальный PATH ищется перед внутренним, и поэтому Visual Studio будет использовать ваши собственные версии инструментов. введите описание изображения здесь

Эдуардо Юпанки Киспе
источник
Спасибо. Это отлично сработало, и я предпочитаю добавлять каталог nodejs.
Тим Тернер
Это сработало для меня. Некоторые пакеты оказались перед '$ (PATH)', но когда я переместил '$ (PATH)' вверх под '. \ Node_modules \ .bin' gulp снова начал работать, и я получил свои значки веб-приложений обратно :)
Фил
0

Для меня проблема заключалась node.exeв том, что в том же каталоге, что и csprojфайл, был локальный файл вместе с node.exe.configфайлом.

У меня было событие после сборки, которое gulpтребовало выполнения другой работы, и VS2017 использовал бы локальный node.exeфайл, а не то, что было указано в моем$(PATH) переменной. Это была более ранняя версия узла, которую я не хотел использовать, поэтому решением для меня было либо удалить локальный файл, node.exeчтобы использовался тот, который указан в списке $(PATH), либо обновить локальный node.exeфайл, если node.exe.configон действительно нужен.

Я просто хотел добавить это сюда на случай, если кто-то еще столкнется с такой же проблемой.

Джозеф
источник
0

Похоже, что варианты в

Инструменты> Параметры> Проекты и решения> Управление веб-пакетами> Внешние веб-инструменты

не имеют никакого эффекта. Однако можно установить версию узла через

Проект> Свойства

Проект> скриншот свойств

JMaFv
источник