今までNodeのバージョン管理ツールにはNodistを使っていたのですが、Nodistは2019年以降更新が無い状態です。
また、2020年12月に新しい管理ツールであるVoltaがリリースされました。
そこで、この記事ではNodeバージョン管理ツールをNodistからVoltaへ移行する手順と、Voltaの主要な機能をご紹介します。
はじめに
- この記事では、Windows 10での動作を前提としています。
- この記事で記載されている手順およびバージョンは2022年1月時点のものです。
NodistからVoltaへの移行
Nodistのアンインストール
Voltaのインストールの前に、Nodistをアンインストールします。感謝!
Nodistをアンインストールするには単純にプログラムのアンインストールをするだけでは足りず、一部フォルダや環境変数も削除する必要があります。
-
「プログラムと機能」からNodistをアンインストール
-
いくつか残っているNodist関連フォルダやファイルを削除
残っているフォルダやファイルが悪さしないよう、
Shift + Delete
で完全削除してしまったほうが無難です。※以下のパスはNodistをデフォルトでインストールした際のものです。
- Nodist
C:\Program Files (x86)\Nodist
- npm-cache
C:\Users\(Username)\AppData\Roaming\npm-cache
- .npmrc
C:\Users\(Username)\.npmrc
- Nodist
-
環境変数を削除
-
ユーザー環境変数「Path」およびシステム環境変数にNodeやNodistのパスがあれば削除
※Path等の環境変数自体の削除は行わないでください。
-
-
アンインストールの最終確認
下記のようなNodistやnodeのコマンドを実行し、コマンドが存在しないエラーが表示されるか確認します。
> nodist > node -v
Voltaのインストール
-
インストーラーのダウンロード
Volta公式の下記のページから「download and run the Windows installer」のリンクからインストーラーをダウンロードします。
-
インストーラーを起動して、Voltaをインストール
-
開発者モードの有効化
上記のVolta公式ページでも記載されているように、VoltaをWindowsで動作させる場合は「開発者モード」を有効化することを推奨しています。
-
Voltaインストール完了の確認
下記のコマンドを実行し、Voltaがインストールされているか確認します。
バージョンが表示されれば成功です。
> volta -v 1.0.5
Nodeインストール、バージョン切り替え
下記のコマンドを実行すると、Nodeがインストールされます。デフォルトでは最新の安定版がインストールされるようです。
> volta install node
success: installed and set node@16.13.2 (with npm@8.1.2) as default
参考:https://docs.volta.sh/reference/install
Nodeやnpmのバージョンを確認すると、該当バージョンがインストールされていることがわかります。
> node -v
v16.13.2
> npm -v
8.1.2
また、バージョンを指定したい場合は、volta install node@{バージョン}
と実行します。
> volta install node@14.15.4
success: installed and set node@14.15.4 (with npm@6.14.10) as default
また、既に該当バージョンのNodeがインストール済みであっても、バージョンの切り替えはinstall node
で行います。
Nodistではnodist add vx.x.x
やnodist vx.x.x
といったコマンドがVoltaではinstall node
で完結するということです。
ここでポイントとなるのが、nodeのバージョンを切り替えると自動的にnpmのバージョンも変わってくれる点です。
Nodistの時はNodeを切り替えるたびにnpm match
を行う必要がありましたが、Voltaの場合はinstall node
だけでnpmのバージョンごと切り替わってくれるのでとても楽です。
インストール済みのNodeバージョン確認
現在インストール済みのNodeの一覧を確認するにはvolta list node
コマンドを実行します。
Nodistでいうところのnodist
コマンド相当の機能がこちらになります。
> volta list node
⚡️ Node runtimes in your toolchain:
v12.13.1
v14.15.4 (default)
v16.13.1
v16.13.2
【補足】npmライブラリのグローバルインストール
前述のNodistのアンインストールでnpm cache等も完全に削除したため、npmからグローバルインストールしたライブラリはVoltaおよびNodeのインストール後に再インストールする必要があります。
プロジェクトのNodeバージョン固定
ここで、Voltaの強力な機能を1つご紹介します。
VoltaではプロジェクトのNodeやnpmバージョンを固定させることができます。
参考:https://docs.volta.sh/guide/understanding#managing-your-project
固定化のやり方は簡単で、プロジェクト直下でvolta pin
コマンドを実行するだけです。
現在v16.13.2
をインストールしている状態でプロジェクトのパスに移動し、v14.15.4
のバージョンを指定してみます。
> node -v
v16.13.2
> npm -v
8.1.2
> cd (プロジェクトフォルダ)
(プロジェクトフォルダ)> volta pin node@14.15.4
success: pinned node@14.15.4 (with npm@6.14.10) in package.json
実行後、プロジェクトのpackage.jsonにこのような設定が追記されていることが確認できます。
"volta": {
"node": "14.15.4"
}
ここで、プロジェクト直下でNodeとnpmのバージョンを確認すると、対応するバージョンとなっていることが確認できます。
(プロジェクトフォルダ)> node -v
v14.15.4
(プロジェクトフォルダ)> npm -v
6.14.10
このプロジェクトフォルダから離脱すると、現在のNodeバージョンに自動で戻っていることが確認できます。
(プロジェクトフォルダ)> cd ..
> node -v
v16.13.2
> npm -v
8.1.2
このvolta pin
を行うことで、VoltaさえインストールしていればNodeやnpmのバージョンがプロジェクトに対応したものに自動的に切り替わってくれます。
まとめ
この記事ではNodistからVoltaへの移行手順と、Voltaの主要な機能をご紹介しました。
実際に私もプロジェクトごとに異なるNodeバージョンを利用しており、今までは作業するプロジェクトを変えるたびにNodeやnpmのバージョンを切り替える必要があったのですが、Voltaに移行したことでその手間が一気に楽になりました。
そのためVoltaは大人数で開発しているプロジェクトや、複数プロジェクトを掛け持ちしている場合、特に効果的に活用できるツールとなると思います!