NVMが新しいターミナルセッションでNode.jsを認識しない問題とその解決策

2024-04-02

NVMが新しいターミナルセッションでNode.jsを認識しない問題

NVMを使ってNode.jsのバージョンを切り替えた後、新しいターミナルセッションを開くと、設定したバージョンが適用されず、デフォルトのバージョンに戻ってしまうことがあります。

原因:

NVMは、nvm useコマンドで指定されたバージョンを、現在のシェルセッションでのみ使用します。新しいターミナルセッションを開くと、新しいシェルが起動するため、設定が引き継がれません。

解決策:

以下の方法で、新しいターミナルセッションでも設定したNode.jsバージョンを適用することができます。

nvm aliasコマンドを使って、デフォルトのNode.jsバージョンを設定することができます。

nvm alias default <version>

例:

nvm alias default 16.14.2

このコマンドを実行すると、新しいターミナルセッションを開いても、Node.jsバージョンは16.14.2になります。

.zshrcファイルにNVMの設定を記述することで、新しいターミナルセッションでも設定が引き継がれます。

# .zshrcファイル

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
nvm alias default <version>
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
nvm alias default 16.14.2

fishシェルは、NVMの設定を自動的に引き継ぐことができるため、上記のような設定は必要ありません。

NVM for VS Codeを使う

Visual Studio CodeでNVMを使う場合は、NVM for VS Code拡張機能を使うと便利です。この拡張機能は、VS Code内でNVMを管理することができ、新しいターミナルセッションでも設定したNode.jsバージョンが適用されます。

補足:

  • 上記の解決策は、Mac OSだけでなく、他のOSでも同様です。
  • nvm useコマンドで指定したバージョンは、現在のシェルセッションでのみ使用されます。新しいターミナルセッションでそのバージョンを使用するには、上記のような設定が必要です。
  • NVMに関する情報は、NVMの公式ドキュメントを参照してください。
  • VS CodeでNVMを使う場合は、NVM for VS Code拡張機能のドキュメントを参照してください。



nvm alias default 16.14.2

.zshrcファイルに設定を記述する

# .zshrcファイル

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
nvm alias default 16.14.2

fishシェルを使う

# fish config

set -g nvm_default_node "16.14.2"

VS CodeでNVM for VS Code拡張機能をインストールして、設定画面でデフォルトのNode.jsバージョンを16.14.2に設定します。

上記はあくまでサンプルコードであり、環境に合わせて変更する必要があります。




NVMで新しいターミナルセッションでNode.jsバージョンを設定する他の方法

# .bashrcファイル

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
nvm alias default <version>
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
nvm alias default 16.14.2

nvm initコマンドを実行すると、.bashrcファイルにNVMの設定が自動的に記述されます。

nvm init
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

nvm_execコマンドを使って、特定のバージョンのNode.jsでコマンドを実行することができます。

nvm_exec <version> <command>
nvm_exec 16.14.2 node index.js

このコマンドを実行すると、index.jsファイルはNode.jsの16.14.2バージョンで実行されます。

環境変数を使う

NVM_NODE_VERSION環境変数を設定することで、新しいターミナルセッションで使用するNode.jsバージョンを指定することができます。

export NVM_NODE_VERSION=<version>
export NVM_NODE_VERSION=16.14.2

NVM for VS Codeを使う

NVMで新しいターミナルセッションでNode.jsバージョンを設定するには、いくつかの方法があります。上記の方法の中から、自分に合った方法を選択してください。


node.js macos npm


Node.js & Node-Cryptoで簡単SHA-256ハッシュ化!同期・非同期処理徹底解説

ここでは、Node. jsとNode-Cryptoを用いてSHA-256ハッシュを生成する方法について、2つのパターンに分けて詳しく解説します。このパターンは、比較的小さなサイズのデータに対して効率的に処理を行うことができます。このコードは以下の処理を実行します。...


【事例付き】node.jsで社内利用限定コードをライセンス表記:All Rights Reserved、SEE LICENSE INの方法

Node. js パッケージの package. json ファイルには、ライセンス情報を含む様々な項目が設定できます。その中でも、ライセンス情報は、コードの利用許諾条件を明確にし、配布者と利用者双方の権利を守る上で重要な役割を果たします。...


初心者でも安心!Webpack Dev Serverを使ってReactJSアプリケーションを開発・公開する

Webpack Dev Serverは、開発中にReactJSアプリケーションを簡単に実行できるツールです。デフォルトではポート8080で実行されますが、ポート80と0. 0.0.0で実行することで、インターネット上の他のユーザーからアクセスできるように公開できます。...


Node.jsでApp Engine Flexible環境の料金を500ドル削減! 経験から学んだ教訓

このチュートリアルを理解するには、以下の知識が必要です。Node. js: JavaScript ランタイム環境Google Cloud Platform (GCP): クラウド コンピューティング プラットフォームGoogle App Engine: GCP 上でアプリケーションをデプロイするためのプラットフォーム...


Angular プロジェクトのバージョン管理のすべて:CLI を使いこなして安心・安全な開発へ

前提条件Node. js がインストールされていること手順ターミナルを開き、プロジェクトを作成するディレクトリに移動します。以下のコマンドを実行します。上記の例では、my-projectという名前のプロジェクトを作成し、Angular のバージョンを ~12...


SQL SQL SQL SQL Amazon で見る



NVMとVisual Studio CodeでNode.js開発を効率化!プロジェクトごとにバージョンを使い分ける方法

前提条件NVMがインストール済みであることNode. jsプロジェクトがあること手順プロジェクトディレクトリでNVM使用するバージョンを設定する<version> を、プロジェクトで使用したいNode. jsバージョンに置き換えます。VSCodeでターミナルを開く