Nodeのバージョン管理にnodenvを利用していた。Voltaは良いと聞いていたが、面倒くさくて触ってこなかった。今更ながら重い腰を上げて移行してみた。
やったこと
nodenvのアンインストール
https://github.com/nodenv/nodenv#uninstalling-nodenv に書いてあることをした。アンインストール手順まで書いてあって親切。.zshrcにあった以下の行を削除。
eval "$(nodenv init -)"
以下のコマンドを実行。
$ rm -rf `nodenv root`
$ brew uninstall nodenv
無事にアンインストールが完了した。
Voltaのインストール
https://docs.volta.sh/guide/getting-started 通りにコマンドを実行した。
$ curl https://get.volta.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12319 100 12319 0 0 12221 0 0:00:01 0:00:01 --:--:-- 12233
Installing latest version of Volta (1.0.8)
Checking for existing Volta installation
Fetching archive for macOS, version 1.0.8
Creating directory layout
Extracting Volta binaries and launchers
Finished installation. Updating user profile settings.
Updating your Volta directory. This may take a few moments...
success: Setup complete. Open a new terminal to start using Volta!
以下の2つのexportコマンドが.zshrcに書き込まれた。
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"
Nodeをインストール
$ volta install node@16
success: installed and set node@16.16.0 (with npm@8.11.0) as default
$ node -v
v16.16.0
$ which node
~/.volta/bin/node
最初のコマンドで2022/08/11現在、LTS版の16.16.0がインストールされた。インストールが速いと聞いていたが、確かに速かった。
Nodeのバージョンを固定
pinコマンドでNodeのバージョンを固定するらしい。
$ volta pin node
success: pinned node@16.16.0 (with npm@8.11.0) in package.json
$ git diff
diff --git a/package.json b/package.json
index d49efda..a026ba0 100644
--- a/package.json
+++ b/package.json
@@ -21,5 +21,8 @@
"eslint": "8.21.0",
"eslint-config-next": "12.2.4",
"typescript": "4.7.4"
+ },
+ "volta": {
+ "node": "16.16.0"
}
}
package.jsonのvoltaフィールドにNodeのバージョンが書き込まれた。これでVoltaを利用していれば他のプロジェクトメンバーも同じNodeのバージョンで開発することができる。