TL;DR
- JavaScript (node)のランタイムマネージャーvolta
- ローカルのnode のバージョン管理をする
概要
いままでDocker で全てのランタイムをどうにかしてきたものの、ついにMBP に特定のランタイム(node)を入れないと仕事に支障がある状況に。
仕事なので諦めてnode をローカルに入れるものの、バージョン管理をしたいのでvolta を使う。
volta はRust 製とのこと。イマドキ猫も杓子もRust なのである。
volta-cli/volta: Volta: JS Toolchains as Code. ⚡
速かったりするらしい。特にバージョン管理ツールにバージョン管理以外求めていないので使えれば良い。
やる
volta のインストール
curl https://get.volta.sh | bash
node のインストール
よくあるランタイムマネージャーと同様にインストール。
$ volta install node@18
インストールできたかの確認
$ volta list ⚡️ Currently active tools: Node: v18.2.0 (current @ </PATH>) Tool binaries available: NONE See options for more detailed reports by running `volta list --help`.
volta は明示的にenable などをする必要なく、すぐ使用可能。
$ node --version v18.2.0 $ npm -v 8.9.0 $ npx -v 8.9.0
バージョンの固定
pin
コマンドを使うとプロジェクト毎のバージョンを固定できる。
$ volta pin node@18
現在のバージョンは package.json に追加される。
$ git diff diff --git a/package.json b/package.json index 3f4f537..c2bd339 100644 --- a/package.json +++ b/package.json @@ "devDependencies": { "@commitlint/cli": "^16.2.3", "@commitlint/config-conventional": "^16.2.1" + }, + "volta": { + "node": "18.2.0" } }
所感
node が数年ぶりにローカルに入っていて凄い違和感。メインで使用しているものの、たぶん6,7年ぶり。
ローカルにnode があると速い。というかDocker for Mac の遅さを実感。
Dockerize する理由はローカル汚したくないことと、Docker により本番との環境一致性を求めていたけど、DX(開発体験)はローカルにインストールしたほうが良いと感じてしまう。いい加減Docker に固めることに固執するのをやめようかと思うなど。volta の感想じゃないけど。