Визуальную студию кода, чтобы использовать узел версию, указанную НВМ
Возможно ли для кода VS использовать версию узла, указанную NVM?
У меня есть 6.9.2, установленный локально. Даже после переключения на другую версию, из терминала OS X (не терминал VS Code), перезапуск VS Code, VS Code по-прежнему показывает использование 6.9.2.
OS X terminal
MacBook-Pro-3:~ mac$ node -v
v7.8.0
VS Code Terminal
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/местные/Бен:/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/profile (или /etc/zprofile) вызывается /usr/libexec/path_helper, который выполняет функцию Path switcheroo.
В родительской оболочке путь еще не имеет NVM dir, поэтому к моменту запуска nvm он добавляет свой каталог к пути. Но в подрешетке PATH был перенастроен macOS, чтобы поместить любые несистемные каталоги в конец, и у нас есть проблема."
Я всегда получал это сообщение при запуске любого интегрированного терминала:
nvm не совместим с параметром npm config "prefix": в настоящее время установлено значение " / usr / local" Запустите
npm config delete prefix
илиnvm use --delete-prefix vx.x.x --silent
, чтобы снять его.То, что я сделал, чтобы решить эту проблему в моем случае, было частью "обходного пути". тот же самый вопрос, о котором сообщается, по существу, следующее:
- сбросьте путь, добавив следующую строку внутри моего ~/.bash_profile на самом верху прежде всего: PATH= "/usr / local/bin:$(getconf PATH) "
И после этого больше никаких предупреждений при запуске любого интегрированного терминала на обоих редакторах, и я могу взаимодействовать с nvm, чтобы переключаться между любыми версиями узлов легко и без проблем.
Вот она Еще одна альтернатива на всякий случай этого никто не поможет, что много.
В vs-коде goto launch.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" } ]}