Node.jsのバージョン管理をVoltaに変えました!インストールと使い方

2023/04/13に公開

Voltaとは

Node.jsのバージョン管理を行ってくれるツールのこと。
Volta公式いわく

⚡️速い
Rust製なのでどんなJavaScriptツールもとても速くインストールして動かせる

⚡️信頼できる
プロジェクトメンバー全員が同じ環境を作れることを保障してくれる

⚡️万人共通
パッケージマネジャーやOS違いでも共通のコマンドを使える

とのこと。

なぜ、Node.jsのバージョンを管理する必要があるのか?

もちろん、Node.jsの公式からインストールして使用しても問題ないです。
しかし、プロジェクト毎にNode.jsのバージョンを変更したい場合(開発現場ではよくある)、その都度インストールし直さなければならないです。
バージョン管理ツールを使うと、インストール済みのNode.jsのバージョンを簡単に変更することも、案件毎にバージョンを変えて管理するということも出来ます。

なぜ、Voltaなのか?

以前までは、nodenvというツールを使っていました。
nodenvでもだいたい同じことができるのですが、nodenvが.node-versionという隠しファイルをプロジェクト内で生成し管理するのに対して、Voltaはディレクトリ内にファイルを増やさずにpackage.jsonに追記されるだけで済むので、乗り換えました。

インストール手順

Homebrewを導入している場合はHomebrewでも可能のようですが、公式はおすすめしないようなのでVolta公式サイトの通りインストールしました。

1.Homebrewでのインストールと確認

curl https://get.volta.sh | bash
volta -v

2.環境変数を設定

volta setup

3.PATHが通っているかどうか確認

cat ~/.zshrc

export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

export ...の2行が表示されていれば問題ありません。

シェルの再起動

exec $SHELL -l

正常に使用できるか確認

volta

Volta 1.1.1
The JavaScript Launcher ⚡

    To install a tool in your toolchain, use `volta install`.
    To pin your project's runtime or package manager, use `volta pin`.
    ...

上記のように表示されれば正常です。

Nodeのインストール

volta install node
success: installed and set node@18.16.0 (with npm@9.5.1) as default

このようにすると現在のNode.jsの安定版がインストールされます。

バージョンを指定してインストール

volta install node@12.11.0

@のあとにバージョンを指定するとそのバージョンをインストールできます。

volta install node@14

上記のようにするとメジャーバージョンの中での安定版をインストールしてくれます。

プロジェクト内でバージョンを固定する

volta pin node@18.14.2

18.14.2で固定しています。

cat package.json
"volta": {
  "node": "18.14.2"
}

package.json内に18.14.2で固定されていることが書かれています。

インストールされているもののバージョンの確認

volta list all
⚡️ User toolchain:

    Node runtimes:
        v18.14.2
        v18.16.0 (default)

    Package managers:


    Packages:

インストールしているNodeやyarnをアンインストール

volta uninstall node@xxxx

では、どうするのか?

rm -rf ~/.volta/tools/image/node/18.14.2/

上記のようにvoltaフォルダ(隠しフォルダ)内からアンインストールしたいバージョンのディレクトリを削除する必要があります。

Discussion