Node.jsバージョン管理ツールとしてのmise
はじめに
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
のように使います。分かりやすい。いいね。
メンテナンスされている
とても頻繁にリリースされていてありがたい・・・!
既存の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
で管理するのがよいでしょう。
おわりに
以前はnodenvやVoltaを使っていましたが、他のNode.jsバージョン管理ツールとの互換性と、複数のランタイムを管理できる点が便利で移行しました。
もうmise
なしでは生きていきません。
あなたも一度、試しに使ってみませんか?
Discussion