Код Visual Studio для использования версии узла, указанной NVM
возможно ли для кода VS использовать версию узла, указанную NVM?
у меня установлен 6.9.2 локально. Даже после переключения на другую версию, с терминала OS X (не терминал VS Code), перезапуск VS Code, VS Code все еще показывает использование 6.9.2.
терминал OS X
MacBook-Pro-3:~ mac$ node -v
v7.8.0
VS код терминала
MacBook-Pro-3:QB-Invoice-API mac$ node -v
v6.9.2
5 ответов
решение состоит в том, чтобы установить псевдоним default
. В терминале ОС запустите -
nvm alias default 7.8.0
открыть vscode, теперь работает node -v
возвращает 7.8.0
кажется, vscode принимает это значение (псевдоним по умолчанию), а не версию узла, которая установлена nvm use X.X.X
добавить runtimeExecutable
на .vscode/launch.json
такой
{
"type": "node",
"request": "launch",
"name": "App",
"program": "${workspaceRoot}/index.js",
"runtimeExecutable": "${env:HOME}/.nvm/versions/node/v6.9.2/bin/node"
}
у меня была такая же проблема, как неспособность сохранить мою версию узла, указанную через nvm в моей среде OS X не только с VSCode, но и с редактором Atom (используя пакет platformio-ide-terminal для управления интегрированным терминалом в нем). Ни одно из предложений в предыдущих ответах не сработало для меня, кроме того, я не использовал отладчик, а использовал gulp и grunt для конкретных задач. По-видимому, nvm не ладит со встроенными терминалами или суб-оболочками, по крайней мере, в этих редакторах потому что при загрузке их переменная среды $PATH изменяется внутренне и делает следующее В соответствии с комментарием одного из участников этого пакета в этой проблеме, сообщенной здесь NVM не загружается во вложенную оболочку #1652:
" @charsleysa Я знаю, почему nvm бросает эту ошибку. В вашей подсетке каким-то образом часть/usr/local/bin:/usr/bin:/bin:/usr/sbin: / sbin вашего пути была перемещена из конца пути в начать.
- когда nvm затем запускается, он вызывает nvm_change_path (мой вклад изменил его на это из nvm_prepend_path), который изменяет соответствующую nvm часть пути на месте.
- Nvm затем проверяет текущий префикс npm, спрашивая npm, что это такое. Поскольку /usr/local/bin /npm теперь имеет прецендент, он сообщает/usr/local / bin.
- Nvm затем проверяет, находится ли текущий префикс, о котором сообщает npm, в дереве каталогов текущего узла nvm версия (на этом этапе каталог установки версии узла, к которой относится псевдоним nvm по умолчанию).
- префикс не является частью этого дерева, поэтому он деактивирует себя (вызывая nvm_strip_path в процессе, поэтому в пути вашей подсети нет пути, связанного с nvm), и завершает ошибку, которую вы получаете. в macOS это /и т. д./профиль (или /etc/zprofile) звонки в /usr/IP-адресов/path_helper, который делает махнулись пути.
в родительской оболочке, Путь еще не имеет NVM dir в нем, поэтому к моменту запуска nvm он добавляет свой каталог к пути. Но в подрешетке путь был перенастроен macOS, чтобы поместить любые несистемные каталоги в конце, и у нас есть проблема."
Я всегда получал это сообщение при запуске любого интегрированного терминала:
nvm не совместим с параметром "префикс" конфигурации npm: в настоящее время установлено значение " / usr / local"
Запустить npm config delete prefix
или nvm use --delete-prefix vx.x.x --silent
удалить он.
то, что я сделал, чтобы решить это в моем случае, было частью "обходного пути" той же проблемы, о которой сообщается, что по существу следующее:
- сбросьте путь, добавив следующую строку внутри my ~/.файл на самом верху, прежде чем что-нибудь еще: PATH="/usr/local / bin:$(путь getconf)"
и после этого больше никаких предупреждений при запуске любого интегрированного терминала на обоих редакторах, и я могу взаимодействовать с nvm для переключения между любым узлом версия легко и без проблем.
здесь другое альтернатива на случай, если это не поможет так много.
альтернативное решение, которое я нашел, - это просто запустить код из оболочки после выбора узла с помощью nvm.
вам нужно сначала открыть поддон команд и выбрать "установить' код ' в путь."
а затем запустите терминал и выберите свой узел через nvm, а затем запустите "код".
в vs код goto запуска.json и добавьте атрибут runtimeVersion внутри конфигураций, как показано ниже. (предполагая, что 4.8.7 уже установлен с помощью nvm)
{
"version": "<some-version>",
"configurations": [
{
"type": "node",
"runtimeVersion": "4.8.7", // If i need to run node 4.8.7
"request": "launch",
"name": "Launch",
"program": "${workspaceFolder}/sample.js"
}
]}