Node.js

Node.js のバージョン管理には Volta がよい

皆さん Node.js のバージョン管理ツールには何を使っておりますでしょうか?上記の中でも私がオススメするのは [volta](https://volta.sh/) です。volta は 1.0 がリリースされたのが2020年12月と比較的新しいツールです。

皆さん Node.js のバージョン管理ツールには何を使っておりますでしょうか?私が知る限りにおいてもこれだけの選択肢が存在します。

  • nodist
  • n
  • nodebrew
  • nodeenv
  • nvm
  • volta

上記の中でも私がオススメするのは volta です。volta は 1.0 がリリースされたのが 2020 年 12 月と比較的新しいツールです。

volta には以下のような特徴があります。

  • 早いインストール:Rust で作成されているツールだけあって素早く異なるバージョンの Node.js をインストールできます
  • プロジェクトのバージョンの固定:volta により Node.js とパッケージマネージャー(npm, yarn)のバージョンをプロジェクトで固定し、ディレクトリを移動するたびにシームレスにバージョンを変更できます。

インストール

volta をインストールする間にすでに他のバージョン管理ツールを使用している場合には始めにアンインストールしておきましょう。例として、私は nodebrew を使用していたので以下コマンドでアンインストールします。

$ brew uninstall nodebrew

続いて以下コマンドで volta をインストールします。

$ curl https://get.volta.sh | bash

私が上記コマンドを実施した際には証明書エラーが発生してしまったので変わりに以下の手順を実施しました。

  1. -k オプションを付与して curl コマンドを実行してスクリプトをローカルに落とす
$ curl -k https://get.volta.sh > volta.sh
  1. volta.sh ファイルの get_latest_relase 関数を -k オプションを付与するように修正する
  get_latest_release() {
-   curl -- slient "https://volta.sh/latest-version"
+   curl -k  --silent "https://volta.sh/latest-version"
  }
  1. volta.sh ファイルを実行する
$ chmod +x volta.sh
$ ./volta.sh

volta コマンドが使用可能か確認してみましょう。

$ volta -v
1.0.6

特定のバージョンの Node.js をインストールする

それでは volta を使用してみましょう。以下のコマンドでは 14.15.5 バージョンの Node.js をインストールします。

$ volta install node@14.15.5
success: installed and set node@14.15.5 (with npm@6.14.11) as default
$ node -v
v14.15.5

次のようにメジャーバージョンの最新をインストールすることもできます。

$ volta install node@16
success: installed and set node@16.14.2 (with npm@8.5.0) as default
$ node -v
v16.14.2

プロジェクトの Node.js のバージョンを固定する

volta pin コマンドを使用すればそのプロジェクトで使用する Node.js のバージョンの指定してディレクトリを移動した際に自動で指定のバージョンをインストールします。これにより、チームで使用するツールを標準化できます。

例えば、以下のようなディレクトリの構成となっていいるとします。

$ tree
.
├── project-a
│   └── package.json
├── project-b
│   └── package.json
└── project-c
    └── package.json

project-a ディレクトリに移動して volta pin コマンドにより使用するバージョンとパッケージマネージャーをこていすることができます。

$ volta pin node@12
$ volta pin yarn@1

package.json には次のように追記されます。

  "volta": {
    "node": "12.22.12",
    "yarn": "1.22.18"
  }

続いて project-bproject-c でも同様の手順でバージョンを固定します。そうすると、ディレクトリを移動するたびに Node.js のバージョンが変更されるようになります。

$ cd project-a
$ node -v
v12.22.12
$ cd ../project-b
$ node -v
v14.19.1
$ cd ../project-c
$ node -v
v16.14.2

欠点としては、プロジェクトの開発者全員が volta を使用していなければいけないところです。例えば node-version というファイルであれば複数の Node.js バージョン管理ツールに対応しています。


Contributors

> GitHub で修正を提案する
この記事をシェアする
はてなブックマークに追加

関連記事