速くて賢いバージョン管理ツール「Volta」を導入してみた
こんにちは、LINICAのフロントエンジニアの丸山です。
Node.jsのバージョン管理ツールとして、
nodenv を使っていましたが、少し前から Volta に移行したので紹介します。
Volta インストール
Voltaをインストールする前に、すでに使用しているNodeのバージョン管理ツールをアンインストールしておく必要があります。
どこにNodeがインストールされているか確認。
which node
↓↓↓
自分は、anyenvというのを使って、nodenvをインストールしていたので、
/Users/[ユーザ名]/.anyenv/envs/nodenv
nodenvをアンインストール。
(使用しているツールに応じて、アンインストールしてください。)
一応確認。
which node
↓↓↓
node not found
Voltaをインストール
curl https://get.volta.sh | bash
`success: Setup complete. Open a new terminal to start using Volta!` と表示されたら、
ターミナルで新しいウィンドウを開くか、以下のコマンドでターミナルを再起動。
exec $SHELL -l
Voltaのインストールを確認。
volta -v
各種コマンド
インストール
volta install node //LTS(Long-term support:長期サポート安定版)をインストール
volta install node@latest //最新バージョンをインストール
volta install node@20 //n系の最終バージョンをインストール
volta install node@20.2.0 //バージョンを指定してインストール
npm、yarnも同様にインストールできます。
プロジェクトでのバージョン指定
以下のように、`pin` でバージョン指定をすると
volta pin node@20.2.0
package.jsonに指定したバージョンが記述されます。
"volta": {
"node": "20.2.0"
}
nodenvの場合は、.node-versionファイルにバージョンを記述して管理しますが、Voltaでは、package.json に記述して管理することになるので、
.node-versionファイルはなくても問題ありません。
また、nodenvでは、.node-versionファイルに記述してあるバージョンがインストールされていない場合は、自分で該当のNodeをインストールするのに対して(プラグイン使うと自動でインストールできるみたいですが…)、
Voltaでは、package.json にバージョン指定があると自動でインストールしてくれます。
アンインストール
volta uninstall node
上記のコマンドが用意されているのですが、現状これだとアンインストールできない?ようです…
以下のディレクトリ配下に、node、npm、yarnなどがインストールされているので、アンインストールしたいバージョンのディレクトリを削除すればOKみたいです。
/Users/[ユーザ名]/.volta/tools/image
インストール状況の確認
volta list all
インストールされている、node、npm、yarnなどのリストが確認できます。
バージョンの後ろに (default) がついているものがありますが、Voltaでは、volta install で最後にインストールしたバージョンがデフォルトになるみたいです。
他にもコマンドありますので、必要に応じて確認してみてください。
その他
あと、自分はM1 Macを使っているのですが、
M1 Macの場合、nodenvで古いバージョンのnodeを入れるには、こちらのようなひと手間が必要になります。
Voltaでは、普通にインストールできました。
まとめ
Voltaで環境を設定しておけば、自動で切り替え、なければインストールしてくれるので、Nodeのバージョンなどを気にする必要もなくなり、複数人でやる場合も、環境が揃えられて良いんじゃないかと思います。ぜひ活用してみてください。