web-dev-qa-db-ja.com

NVMで指定されたノードバージョンを使用するVisual Studioコード

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
38
Aseem Gautam

解決策は、エイリアスdefaultを設定することです。 OSターミナルで実行-

nvm alias default 7.8.0

Vscodeを開き、node -vを実行して7.8.0を返します

Vscodeはnvm use X.X.Xで設定されたノードバージョンではなく、この(エイリアスのデフォルト)値を使用するようです

更新(2018年12月4日)-このソリューションは、すべてのユーザーに有効とは限りません。他のソリューションについては、以下の回答をご覧ください。

34
Aseem Gautam

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"
}
35

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"
    }
]}
33
Sm Srikanth

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を実行して設定を解除します。

私の場合、これを解決するために行ったのは、報告された同じ問題の「回避策」の部分で、本質的には次のとおりです。

  • 最上部の〜/ .bash_profile内に次の行を追加してパスをリセットします:PATH = "/ usr/local/bin:$(getconf PATH)"

そしてその後、両方のエディターで統合端末を起動したときに警告が表示されなくなり、nvmと対話して、簡単に問題なくノードバージョンを切り替えることができます。

ここでは、これがあまり役に立たない場合に備えて another の代替です。

27
Charlyboy

私は同じ問題を抱えていましたが、上記の答えは役に立ちませんでした。

明らかに、osxのデフォルトshellArgsbashに設定されていますが、zshを使用しています。ユーザー設定のshellArgsを空の配列に設定することで問題を解決しました。

"terminal.integrated.shellArgs.osx": []

16
Skeevs

私が見つけた代替ソリューションは、nvmを使用してノードを選択した後、単にシェルからコードを起動することです。

最初にコマンドパレットを開き、「 'code' into path」を選択する必要があります。

enter image description here

そして、ターミナルを起動し、nvmを介してノードを選択し、「コード」を起動します。

enter image description here

9
jr.

oh-my-zshを使用していますが、nvmで指定されたノードバージョンも使用していません。ここに投稿されたいくつかの提案を試みましたが、この問題を解決する唯一の方法は、~/.zshrcの先頭に次の行を追加することでした

PATH="/usr/local/bin:$(getconf PATH)"
6
BlueTabasco

提案された解決策をすべて試しましたが、何も機能しませんでした。

/ usr/local/bin/nodeはどこかを指していました。特定のnvmノードフォルダーへのシンボリックリンクを作成し、それは私のための問題を解決していました。

ln -s /Users/mad/.nvm/versions/node/v11.1.0/bin/node /usr/local/bin/node
2
madflanderz

同じ問題があり、nodeおよびbrewによってnvmがインストールされていることがわかりました。 nodeによってインストールされたbrewをアンインストールしましたが、端末とVisual Studioの両方のコードのバージョンは同じです。

0
franziga

すべてのソリューションを試したわけではありませんでしたが、私にとってはnvmの更新は簡単に機能しました。

インストールに従ってください こちら を確認し、bash_profileが更新されていることを確認してください。

0
Iar0