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 ######################################################################## 100.0% 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のバージョンで開発することができる。