🍉

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について、詳しくは下記リンク参照
https://qiita.com/non_cal/items/a8fee0b7ad96e67713eb
https://zenn.dev/osachi/articles/9f0a684fc7f0db
https://qiita.com/ryouzi/items/5b0158ba1a77bf4b6004
https://qiita.com/nao-United92/items/16866c9fe07f75d42126

現状のインストール状況確認

コマンド 意味 表示される内容(サンプル)
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
# バージョンが切り替わったか確認
  • プロジェクトごとにバージョン切り替え

    1. プロジェクトルート直下に「.node-version」があるか?
    2. 「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