フロントエンド開発で人気のバージョン管理ツール Volta ですが、近年は更新が滞りがちです。そこで新たな乗り換え先として注目を集めているのが、Rust製の高速バージョン管理ツール proto です。
proto はNode.jsだけでなく、Go, Python, Rustなど、さまざまな言語やツールのバージョンを一つのツールで管理できるのが大きな魅力です。
今回は、Voltaからの乗り換えを検討している方や、新しくproto
を使い始める方向けに、インストールから基本的な使い方までを分かりやすく解説します。
インストール
前提要件
下記のパッケージは事前にインストールをしておく必要があります。
# macOS
brew install git unzip gzip xz
# Ubuntu / Debian
apt-get install git unzip gzip xz-utils
- Git:利用可能なバージョン/タグを取得するため
- tar, unzip, gz, xz:アーカイブを解凍するためのもの
補足: Windowsの場合は Git for Windows などをインストールしていれば、必要なツールは同梱されているため、追加のパッケージは基本的に不要です。
Linux、macOS、WSL
bash <(curl -fsSL https://moonrepo.dev/install/proto.sh)
Windows
irm https://moonrepo.dev/install/proto.ps1 | iex
動作確認
proto --version
proto 0.52.4
などのバージョン表示が帰ってくればインストールが成功しています。
通常、インストールスクリプトが自動で環境変数(PATH)を設定してくれますが、もしコマンドが見つからない場合は、お使いのシェルの設定ファイル(.bashrcや.zshrcなど)に以下の行を手動で追記してください。
export PATH="$HOME/.proto/shims:$HOME/.proto/bin:$PATH"
初期設定と基本的な使い方
proto
の各種設定やツールは、ホームディレクトリ以下の ~/.proto
にインストールされます。
1. シェルの設定(必須)
proto
を最大限に活用するため、最初にシェルの設定を行いましょう。
これにより、ディレクトリを移動した際に、そのプロジェクトで設定されているツールのバージョンが自動的に有効になります。
まず、以下のコマンドを一度だけ実行します。
proto setup
次に、お使いのシェルの設定ファイル(.bashrc
, .zshrc
など)の末尾に、以下の内容を追記してください。
# proto shell activation
if command -v proto >/dev/null 2>&1; then
eval "$(proto activate bash)"
fi
設定を反映させるために、ターミナルを再起動するか、source ~/.bashrc
や source ~/.zshrc
を実行してください。
2. グローバル設定(推奨)
グローバル設定ファイル ~/.proto/.prototools
を作成し、便利なオプションを有効にしておきましょう。
[settings]
auto-install = true # .prototools に記載されたツールを自動でインストール
auto-clean = true # 古いバージョンを自動削除してディスク容量を節約
公式ドキュメント:https://moonrepo.dev/docs/proto/config
3. プロジェクトでの使い方
プロジェクトごとにツールのバージョンを管理するのが、proto
の基本的な使い方です。
プロジェクトのルートディレクトリで、以下のコマンドを実行してみましょう。
# プロジェクトで使うNode.jsのバージョンを v20 に固定する
proto pin node 20
このコマンドを実行すると、以下の2つのことが行われます。
- カレントディレクトリに
.prototools
という設定ファイルが作成され、node = "20"
という内容が書き込まれる。 - Node.js v20 がまだインストールされていなければ、自動でダウンロード・インストールされる。(
auto-install = true
のため)
これにより、このディレクトリ内では常にNode.js v20が使われるようになります。
下記のような設定(.prototools
) をGitで管理すれば、チームメンバー全員が同じバージョンのツールを簡単に揃えることができます。
node = "22.19.0"
npm = "10.9.3"
4. グローバルでの使い方
プロジェクトに依存せず、システム全体で使いたいツールはグローバルに設定します。
# Node.js
proto install node lts --pin global
# npm
proto install npm latest --pin global
よく使うコマンドまとめ
# proto自体を最新バージョンにアップデート
proto upgrade
# インストール可能なツールのバージョン一覧を表示
proto versions <tool>
# 現在のディレクトリでツールのバージョンを固定(.prototoolsを作成/更新)
proto pin <tool> <version>
# ツールのインストール
proto install <tool> <version>
# ツールのアンインストール
proto uninstall <tool> [version]
まとめ
Voltaの更新が止まっている今、protoは非常に有力な乗り換え先です。
- Rust製で動作が非常に高速
- Node.js以外にもGo, Python, Bunなど多数のツールに対応
-
.prototools
ファイルでプロジェクトごとのバージョン管理が簡単
特に、複数のプロジェクトで異なるNode.jsやパッケージマネージャーのバージョンを管理したい方、フロントエンド以外の言語もまとめて管理したい方には、ぜひ一度試してみてほしいツールです。
更新メモ
- Windows環境でのインストールでは、自動でパスが通らないことを確認
-
~/.proto/shims
ディレクトリは各ツールのインストール後に作成されるため、各ツールの初回インストール以前ではオートインストールのワークフローが発生しない