🍽️

Node.jsバージョン管理ツールとしてのmise

2024/06/07に公開

はじめに

Node.jsのバージョン管理、地味に面倒ですよね。わかります。
本記事では、便利なNode.jsバージョン管理ツールであるmiseをご紹介します。

対象読者

  • Node.jsバージョン管理ツールを探している方
  • 利用しているNode.jsバージョン管理ツールに満足していない方

miseとは

mise (mise-en-place)はNode.js, Python, Ruby, Denoといった複数のランタイム環境の管理、環境変数の管理、タスクランナーの機能を持つツールです。
asdfのようなものです。asdfとの違いが気になる方はこちらをご参照ください。

Node.jsのバージョンを管理できる、というのはmiseの機能の内の1つにすぎませんが、miseの全てを説明するとなると長くなるので、今回はNode.jsのバージョン管理という側面に焦点を絞り、ご紹介したいと思います。

miseの読み方

pronounced "meez""

公式ドキュメントに記載されているので、「みーず」と読みそうです。
フランス語で、「準備」を意味し、料理の際にすべての材料や道具を事前に準備しておくという意味みたいです。

miseを利用するメリット

私がmiseを使って感じたメリットは以下の3点です。

  • コマンドが直感的でシンプル
  • メンテナンスされている
  • 既存のNode.jsバージョン管理ツールと互換性がある
  • Rust製

コマンドが直感的でシンプル

$ mise use node@20.14.0

のように使います。分かりやすい。いいね。

メンテナンスされている

https://github.com/jdx/mise
コードはGitHubで公開されているので、どれくらい開発が活発か確認できます。
とても頻繁にリリースされていてありがたい・・・!

既存のNode.jsバージョン管理ツールと互換性がある

.node-version.nvmrcファイルにも対応しており、そのファイルが存在するプロジェクトで

$ mise install

とターミナルで実行すると、自動で対応するNode.jsのバージョンがダウンロードされます。

インストール方法

mise CLIをインストールする

$ curl https://mise.run | sh

miseを有効にする

(以下はzshの場合)

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

miseの確認

$ mise -v

を実行して

2024.4.10 macos-arm64 (63fbd1b 2024-04-29)

のように表示されたら、正しくインストールされています。

使い方

$ mise use node@{version}

基本的には上記のように使います。
{version}には利用したいNode.jsのバージョンを指定してください。
ltsやlatestという文字列でも指定できます。

グローバルの場合

システム全体でNode.jsを利用したい場合、-gフラグをつければよいです。

$ mise use -g node@20.14.0

リポジトリに限定する場合

固定したいNode.jsのバージョンを特定のリポジトリにのみ適用したい場合は、特にフラグ等はつけずに、リポジトリのルートで以下のコマンドを実行すればよいです。

$ mise use node@20.14.0

すると、.mise.tomlファイルが作成され、その中身は

[tools]
node = "20.14.0"

と書き込まれます。
これはmise特有のファイルで、このリポジトリで管理しているツールの一覧を表します。

$ mise install

を実行すると、.mise.tomlに記述されている全てのツールがインストールされます。

チーム開発でmiseを利用することを前提としたくない場合は、

$ echo 20.14.0 >> .node-version

のようにして、.node-version.nvmrcで管理するのがよいでしょう。

おわりに

以前はnodenvVoltaを使っていましたが、他のNode.jsバージョン管理ツールとの互換性と、複数のランタイムを管理できる点が便利で移行しました。
もうmiseなしでは生きていきません。
あなたも一度、試しに使ってみませんか?

Discussion