🙆

Proto : JSツールチェインのバージョンマネージャ

2024/01/05に公開

https://moonrepo.dev/proto
https://github.com/moonrepo/proto

JSツールチェインのバージョンマネージャは Proto がオススメです。
(自分は以前から愛用しています。)

Volta と違い、uninstall コマンドがあり、Deno や Bun や PNpm etc に
対応しています。

(Volta は 試用時、uninstallコマンドがなく、既に開発が停滞していたので、
アンインストールしました。)

Rust で実装されています(Voltaと同じ)。

オススメはしませんが、Rust、Go、Python のバージョン管理も行えます。
(Python については、現在、experimental)

インストール

Linux, macOS, WSL

curl -fsSL https://moonrepo.dev/install/proto.sh | bash

macOS + Homebrew

brew install proto

Windows

irm https://moonrepo.dev/install/proto.ps1 | iex

Windowsの場合には、shimsフォルダに対して?下記コマンドによる実行権限の
付与が必要です。

Set-ExecutionPolicy RemoteSigned

# Without admin privileges
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

環境設定

Linux, macOS, WSL

シェルの設定ファイル(~/.bashrc(Linuxの場合) or ~/.zshrc(macOSの場合))
に対して、下記の環境変数を追加し、

export PROTO_HOME="$HOME/.proto"
export PATH="$PROTO_HOME:$PROTO_HOME/shims:$PROTO_HOME/bin:$PATH"

シェルに反映します。

source ~/.bashrc (Linuxの場合)
source ~/.zshrc (macOSの場合)

アップグレード

proto upgrade

アンインストール

~/.proto ディレクトリ を削除し、proto用の環境変数をシェルの設定ファイル
から除去する。

ツールのインストール

proto install ツール名 # 最新バージョンのインストール
proto install ツール名 latest # 最新バージョンのインストール
proto install ツール名 バージョン番号 # 指定したバージョンのインストール

ツール名 = node / npm / pnpm / yarn / deno / bun etc

ツールのバージョンの固定

proto pin ツール名 バージョン番号 # 実行したディレクトリでのバージョン固定
proto pin ツール名 バージョン番号 --global # グローバルでのバージョン固定

ツール名 = node / npm / pnpm / yarn / deno / bun etc

ツールのインストール + バージョン固定 (0.31以降)

proto install ツール名 --pin # 最新バージョン(グローバル)
proto install ツール名 バージョン番号 --pin # 指定したバージョン(グローバル)
proto install ツール名 --pin global # 最新バージョン(グローバル)
proto install ツール名 バージョン番号 --pin global # 指定したバージョン(グローバル)
proto install ツール名 --pin local # 最新バージョン(ローカル)
proto install ツール名 バージョン番号 --pin local # 指定したバージョン(ローカル)

ツール名 = node / npm / pnpm / yarn / deno / bun etc

ツールのアンインストール

proto uninstall ツール名 # ツールのアンインストール
proto uninstall ツール名 バージョン番号 # ツールの特定バージョンのアンインストール

ツール名 = node / npm / pnpm / yarn / deno / bun etc

ツールのインストールしたバージョンの一覧

v0.30.2

proto tool list ツール名 # 特定ツールのみ
proto tool list # 全ツール (ツール毎)

v0.31 以降

proto plugin list ツール名 --aliases --versions ツール名 # 特定ツールのみ
proto plugin list --aliases --versions # 全ツール (ツール毎)

ツール名 = node / npm / pnpm / yarn / deno / bun etc

サポートされているツール

https://moonrepo.dev/docs/proto/tools

Discussion