見出し画像

速くて賢いバージョン管理ツール「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のバージョンなどを気にする必要もなくなり、複数人でやる場合も、環境が揃えられて良いんじゃないかと思います。ぜひ活用してみてください。