🍉
Nodeのバージョン切り替えについてまとめ
Nodeの状態を確認したい
chrome-devtools-mcpの設定する際、「Node」のバージョンが古いとエラーが表示された。
インストールはしていた。
では、バージョンがどうなっているか?どのように管理しているか?
改めて確認したのでまとめました。
環境:Windows11Pro+WSL2+Ubuntu+VSCode(詳細は下記の通り)
- Windows: Windows 11 (ビルド 26100.4946)
- WSL: 2.5.7.0(カーネル 6.6.87.1-1)
- WSLg: 1.0.66
- ディストリビューション: Ubuntu 24.04.2 LTS (Codename: noble)
- VSCode:1.103.2
Node、npm、npx、nvm、nodenvについて、詳しくは下記リンク参照
現状のインストール状況確認
| コマンド | 意味 | 表示される内容(サンプル) |
|---|---|---|
which node |
現在のシェルで使用される Node の実体パスを確認 | /home/<ユーザー名>/.nodenv/shims/node |
which npm |
現在のシェルで使用される npm の実体パスを確認 | /home/<ユーザー名>/.nodenv/shims/npm |
which npx |
現在のシェルで使用される npx の実体パスを確認 | /home/<ユーザー名>/.nodenv/shims/npx |
which nodenv |
nodenv 自体のパスを確認 | /home/<ユーザー名>/.nodenv/bin/nodenv |
nodenv which node |
現在のシェルで使用される Node の実体(バージョンごとの bin)を確認 | /home/<ユーザー名>/.nodenv/versions/14.16.1/bin/node |
node -v |
現在の Node バージョンを確認 | v14.16.1 |
npm -v |
現在の npm バージョンを確認 | 6.14.12 |
npx -v |
現在の npx バージョンを確認 | 6.14.12 |
nodenv versions |
nodenv で管理されている全 Node バージョンを確認 |
* 14.16.1 (set by /home/<ユーザー名>/.nodenv/version) 14.21.3 23.11.0
|
Nodeバージョンの切り替え
- グローバルバージョンの変更
nodenv global 23.11.0
# これで 全ターミナルのデフォルト Node が 23.11.0 になる
# 新しいシェルを開いたときもこのバージョンがデフォルト
nodenv rehash
# nodenv が管理するシムを更新
# node / npm / npx などが正しく新しいバージョンを指すようにする
node -v
npm -v
npx -v
# バージョンが切り替わったか確認
-
プロジェクトごとにバージョン切り替え
- プロジェクトルート直下に「.node-version」があるか?
- 「cat .node-version」で内容を確認し、バージョン記載があるか?
→あればプロジェクトディレクトリを開けば、自動でバージョン切り替えとなる
-
ターミナルでバージョンを分ける
ターミナルは「プロセスごとに環境を持っている」
それぞれのターミナルは独立したシェルプロセス として動いる
つまり、Node のバージョンはターミナルごとに変えられるnodenv の場合
コマンド 意味 nodenv global 23.11.0全体のデフォルト Node バージョンを切り替え nodenv local 18.17.1現在のフォルダ用に Node バージョンを切り替え( .node-version作成)nodenv shell 23.11.0そのターミナルだけ Node 23 に切り替える ポイントは 最後の shell コマンド。
これを使うと、同じプロジェクトフォルダでも「このターミナルだけ別の Node を使う」が可能
Discussion