VS CodeはNVMで指定されたノードバージョンを使用できますか?
6.9.2をローカルにインストールしています。 OS X端末(VS Code端末ではない)からVS Codeを再起動して別のバージョンに切り替えた後でも、VSコードは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
解決策は、エイリアスdefault
を設定することです。 OSターミナルで実行-
nvm alias default 7.8.0
Vscodeを開き、node -v
を実行して7.8.0
を返します
Vscodeはnvm use X.X.X
で設定されたノードバージョンではなく、この(エイリアスのデフォルト)値を使用するようです
更新(2018年12月4日)-このソリューションは、すべてのユーザーに有効とは限りません。他のソリューションについては、以下の回答をご覧ください。
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"
}
VS Codeで、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"
}
]}
OS X環境では、VSCodeだけでなくAtom Editor(統合端末を管理するためのplatformio-ide-terminalパッケージを使用)でもnvmでノードバージョンを指定したままにできないという同じ問題がありました初期化)。デバッガーを使用せず、特定のタスクにgulpとgruntを使用する以外に、以前の回答の提案はどれも役に立ちませんでした。少なくともこれらのエディターでは、nvmは統合された端末またはサブシェルとうまくいきません。それらをロードすると、環境変数$ PATHが内部で変更され、この問題の報告者によるこのパッケージの貢献者のコメントによると、次のようになりますhere NVMはネストされたシェル#1652内でのロードに失敗します :
"@ charsleysanvmがこのエラーをスローしている理由はわかっています。サブシェルでは、どういうわけか/ usr/local/bin:/ usr/bin:/ bin:/ usr/sbin: PATHの/ sbin部分は、PATHの末尾から先頭に移動されました。
- その後、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を呼び出します。これが、サブシェルのPATHにnvm関連のパスがない理由です)、取得したエラーでベイルします。 macOSの/ etc/profile(または/ etc/zprofile)は、/ usr/libexec/path_helperを呼び出します。これは、PATHスイッチャーを実行します。
親シェルでは、PATHにはまだnvm dirが含まれていないため、nvmが実行されるまでに、パスの前にディレクトリが追加されます。しかし、サブシェルでは、macOSによってPATHが再構成され、システム以外のディレクトリが最後に配置され、問題が発生します。」
統合された端末を起動すると、常にこのメッセージが表示されました。
nvmはnpm config "prefix"オプションと互換性がありません:現在 "/ usr/local"に設定されていますnpm config delete prefix
またはnvm use --delete-prefix vx.x.x --silent
を実行して設定を解除します。
私の場合、これを解決するために行ったのは、報告された同じ問題の「回避策」の部分で、本質的には次のとおりです。
そしてその後、両方のエディターで統合端末を起動したときに警告が表示されなくなり、nvmと対話して、簡単に問題なくノードバージョンを切り替えることができます。
ここでは、これがあまり役に立たない場合に備えて another の代替です。
私は同じ問題を抱えていましたが、上記の答えは役に立ちませんでした。
明らかに、osxのデフォルトshellArgs
はbash
に設定されていますが、zsh
を使用しています。ユーザー設定のshellArgs
を空の配列に設定することで問題を解決しました。
"terminal.integrated.shellArgs.osx": []
oh-my-zshを使用していますが、nvmで指定されたノードバージョンも使用していません。ここに投稿されたいくつかの提案を試みましたが、この問題を解決する唯一の方法は、~/.zshrc
の先頭に次の行を追加することでした
PATH="/usr/local/bin:$(getconf PATH)"
提案された解決策をすべて試しましたが、何も機能しませんでした。
/ usr/local/bin/nodeはどこかを指していました。特定のnvmノードフォルダーへのシンボリックリンクを作成し、それは私のための問題を解決していました。
ln -s /Users/mad/.nvm/versions/node/v11.1.0/bin/node /usr/local/bin/node
同じ問題があり、node
およびbrew
によってnvm
がインストールされていることがわかりました。 node
によってインストールされたbrew
をアンインストールしましたが、端末とVisual Studioの両方のコードのバージョンは同じです。
すべてのソリューションを試したわけではありませんでしたが、私にとってはnvmの更新は簡単に機能しました。
インストールに従ってください こちら を確認し、bash_profile
が更新されていることを確認してください。