Open6

JS類をまとめて管理するツールprotoを試してみる

AyuuAyuu

brewで管理したいが公式ではサポートしていないみたい
なのでbrew tapを用いて頑張る
brew tapに関してはこの記事が参考になった

zsh
brew tap moonrepo/proto https://github.com/moonrepo/proto
brew install proto
proto setup
AyuuAyuu

nodeを入れてみる

zsh
proto install node
# [ INFO 2024-03-10 04:21:49.703] proto::commands::install:install  Node.js has been installed to ~/.proto/tools/node/21.7.1!
zsh
node --version
# v21.7.1
AyuuAyuu

使用バージョンを固定してみる
ディレクトリ毎に使用するバージョンを変えたい時は--globalオプションを削除し使用したいディレクトリでpinコマンドを実行する

zsh
proto pin node 21 --global
# [ INFO 2024-03-10 04:38:23.501] proto::commands::pin:pin  Set the Node.js version to ~21
zsh
cat .ptorotools
───────┬─────────────────────────────────────────────────────────────────────────
       │ File: .prototools
───────┼─────────────────────────────────────────────────────────────────────────
   1node = "~21"
───────┴─────────────────────────────────────────────────────────────────────────
AyuuAyuu

エイリアス機能もあるらしい
やってみる

The proto alias <tool> <label> <version> (or proto a) command will define a custom alias that maps to a specific version for the provided tool. Aliases can be used anywhere a version is accepted.

同じく--globalを削除すると実行したディレクトリのみで設定したエイリアスが使用できる

zsh
proto alias node n 21 --global
# [ INFO 2024-03-10 04:44:00.409] proto::commands::alias:alias  Added alias n (~21) for Node.js
zsh
n --version
# zsh: command not found: n

う〜〜んこのエイリアスはnodeコマンドのエイリアスって訳じゃないのかな
もしかしたら同じところが作ってるmoonで使えるやつなのかも
moonはモノレポの管理ツールでnpmとかyarnのワークスペース機能みたいな感じらしい(違うかも