Node.jsバージョン管理の最有力候補『mise』入門。旧ツール(Volta / nvm / nodebrew)からの移行と使い方を紹介。

はじめに:なぜmiseへ移行するべきなのか?

これまでNode.jsのバージョン管理ツールとして「nodebrew」や「nvm」、あるいは「Volta」を使ってきた方も多いと思いますが、最近はRust製で超高速な万能ツール「mise(旧rtx)」へ移行するケースが急増しています。

なぜ従来のツールから乗り換えるのでしょうか?
nodebrewやnvmでは「プロジェクトごとに手動でバージョンを切り替える手間」があり、シェルの起動も遅くなりがちでした。それを解決したのが自動切り替え機能を持つVoltaでしたが、公式により実質的なメンテナンス終了(unmaintained)が宣言されてしまいました。

その後継として大本命となっているのが「mise」です。miseを採用すると、一度バージョンを固定してしまえば、そのディレクトリに移動するだけで自動的に正しいバージョンが適用されます。さらに、Node.jsだけでなくPythonやRubyなど他の言語のバージョン管理もこれ一つで完結できるのが最大のメリットです。

miseの主な特徴
・Rust製のため動作・ターミナルの起動が非常に高速
・ディレクトリに移動するだけで、自動的に指定されたバージョンに切り替わる
・Node.jsだけでなく、Python、Go、Rubyなど複数言語の管理を統一できる
・.nvmrc など既存ツールの設定ファイルもそのまま読み込める互換性の高さ

1. 既存のバージョン管理ツールの削除

【環境構築時のご注意】
複数のバージョン管理ツールが混在していると、パス(PATH)の競合により思わぬエラーが発生することがあります。miseをインストールする前に、必ず既存のツールを完全に削除しておきましょう。

nodebrewの削除方法

  1. インストールディレクトリの削除
  2. シェルの設定ファイルからパスの記述を削除
# 1. ディレクトリを削除します
rm -rf ~/.nodebrew

# 2. .zshrc や .bash_profile などの設定ファイルを開き、以下のパス設定を削除(またはコメントアウト)します
# export PATH=$HOME/.nodebrew/current/bin:$PATH

nvmの削除方法

  1. インストールディレクトリの削除
  2. シェルの設定ファイルからnvm用の記述を削除
# 1. ディレクトリを削除します
rm -rf ~/.nvm

# 2. .zshrc や .bash_profile などの設定ファイルを開き、以下の記述を削除します
# export NVM_DIR="$HOME/.nvm"
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Voltaの削除方法

  1. インストールディレクトリの削除
  2. シェルの設定ファイルからVolta用の記述を削除
# 1. ディレクトリを削除します
rm -rf ~/.volta

# 2. .zshrc や .bash_profile などの設定ファイルを開き、以下の記述を削除します
# export VOLTA_HOME="$HOME/.volta"
# export PATH="$VOLTA_HOME/bin:$PATH"

設定ファイルの記述を削除した後は、ターミナルを再起動するか「source ~/.zshrc」などを実行して設定を反映させてください。

2. miseのインストールと設定

本体のインストール後、シェルに「有効化(activate)」の設定を記述します。

本体のインストール

ターミナルで以下のコマンドを実行します。

curl https://mise.run | sh

設定ファイルへの追記

エディター(nanoなど)で設定ファイルを開き、一番下の行に以下の記述を追記して保存してください。

■ zsh をお使いの場合(最近のMacのデフォルト)
設定ファイル:~/.zshrc

eval "$($HOME/.local/bin/mise activate zsh)"

■ bash をお使いの場合(少し古いMacや、ご自身で設定している場合)
設定ファイル:~/.bash_profile

eval "$($HOME/.local/bin/mise activate bash)"

追記して保存した後は、ターミナルを再起動するか「source ~/.zshrc」(bashの場合は「source ~/.bash_profile」)を実行して設定を反映させてください。

ターミナルで完結させる場合
エディターを使わず、ターミナル上のコマンドで追記・反映まで完結させる場合は、お使いのシェルに合わせて以下の3行を順番に実行してください。(1行目の空echoは、ファイルの末尾で文字がくっつくのを防ぐための対策です)

■ zsh をお使いの場合

echo "" >> ~/.zshrc
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc

■ bash をお使いの場合

echo "" >> ~/.bash_profile
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bash_profile
source ~/.bash_profile

3. miseの基本的な使い方

miseの使い方は非常にシンプルです。主要な操作をまとめました。

Node.jsのインストールと全体の切り替え(グローバル設定)

特定のバージョン、または最新版をインストールします。miseでは、mise use --global を実行するだけでインストールとPC全体のデフォルト設定が同時に行われます。

# 最新のLTSバージョンをインストールしてグローバルに設定
mise use --global node@lts

# バージョンを指定してインストール(例: バージョン20系, 22.19.0系)
mise use --global node@20
mise use --global [email protected]

プロジェクトごとのバージョン固定(ローカル設定)

プロジェクトごとに使用するNode.jsのバージョンを固定します。

  • プロジェクトのルートディレクトリに移動します。
  • 以下のコマンドを実行してバージョンを固定します。
# 1. プロジェクトのディレクトリに移動する(パスはご自身の環境に合わせてください)
cd /path/to/your/project

# 2. バージョンを固定する(例として20系を指定)
mise use node@20

この操作により、ディレクトリ内に .mise.toml という設定ファイルが自動作成されます。以降は、そのディレクトリに入るだけで自動的に固定されたバージョンが適用されるため、チーム開発でのバージョン差異を防ぐことができます。

miseのよく使うコマンド一覧

コマンド 役割・説明
mise use –global <tool>@<version> 指定したツールとバージョンをインストールし、全体のデフォルトに設定します。
mise use <tool>@<version> 現在のディレクトリ用にツールをインストール・固定します(.mise.tomlを作成)。
mise ls 現在インストールされているツールとバージョンのリストを表示します。
mise ls-remote <tool> インストール可能な全てのバージョン履歴をサーバーから取得して表示します。

よくある質問

VS Codeで npm i を実行すると「Error: Cannot find module ‘node:path’」というエラーが出ます
このエラーは、使用しているNode.jsのバージョンが古く(v14未満など)、新しいnpmの仕様に対応していない場合に発生します。miseではなくPCに昔から直接インストールされていた古いNode/npmが動いてしまっている可能性が高いです。

【よくある落とし穴:VS CodeとOSでターミナルの種類が違う】
Macの標準ターミナル(bash)にはmiseのパスが通っているため正常に動くのに、VS Codeの統合ターミナルが「zsh」になっており、そちらにパスが通っていない(=古いNodeが呼ばれる)というケースが発生していることがあります。

【解決方法】

  1. VS Codeのターミナルで echo $SHELL を実行し、自分が bashzsh のどちらを使っているか確認する。
  2. VS Code側のシェル(zshなど)の設定ファイル(~/.zshrc 等)にmiseのactivate設定が記述されているか確認し、無ければ追記して source ~/.zshrc を実行する。
  3. VS Codeを一度完全に再起動する。
  4. VS Codeのターミナルで node -vwhich node を実行し、miseのNode(例: ~/.local/share/mise/installs/node/...)が呼ばれているか確認する。

それでも直らない場合は、過去にHomebrewや公式サイトのインストーラーで入れた古いNode.jsが残っていないか確認し、そちらをアンインストールしてください。

miseをインストールしたのに「command not found: mise」と出ます
環境変数(PATH)の追加、またはactivateの記述が正しく設定されていない可能性があります。ターミナルを再起動するか、.zshrc.bash_profileeval "$(~/.local/bin/mise activate zsh)" 等の記述があるか確認し、再度 source ~/.zshrc 等を実行してみてください。
npmやyarnもmiseで管理できますか?
はい、可能です。mise use --global npm@8mise use --global yarn のように実行することで、Node.js本体と同様に管理できます。また、Node.jsに同梱されている corepack を有効化(corepack enable)してyarnやpnpmを管理するのも最近の主流です。

CONTACT

webサイト制作、デザインに関するご相談、御見積のご依頼など、弊社へのお問い合わせはこちら