公開日: 2025年2月28日

【JavaScript】 Volta で Node.js のバージョンを管理する

諸事情により JavaScript を学習することになりましたので、実行環境である Node.js およびそのバージョン管理ツール「Volta」のインストール方法と使いかたを記録しておきます。なお、ここでは Windows 11 & PowerShell 7 での使用を前提とします。

関連記事:

Volta の良い点・悪い点

NVS と使い比べたりして感じた Volta の印象:

  • [O] バージョン管理ツールのトレンドになるっぽい
  • [O] インストールが簡単
  • [O] (NVS と比べて) 速い
  • [O] (NVS と比べて) コマンド体系が整理されている
  • [X] Windows ではインストール先を選べない?
  • [?] Node.js のバージョンは package.json で指定する

バージョン管理ツールのトレンドになるっぽい

Node.js のバージョン管理ツールについてググると、他のツールから Volta に移行しましたという記事をちょくちょく見かけます。また、公式リポジトリ を覗いてみても、けっこうな頻度でリリースされており、直近では 2 ヵ月ほど前の 2024 年 12 月に v2.0.2 がリリースされています (2025 年 2 月現在)。「これを使っとけば安泰かな」という安心感があります。

インストールが簡単

Windows なら次のようにコマンドを打つだけで完了するので、初心者にはありがたいと思いました。

PS> winget install Volta.Volta

(NVS と比べて) 速い

NVS では Node.js のバージョンを切り換えるときに若干の遅延を感じたのですが、Volta ではそれがなくストレスフリーでした (というか NVS を使う前は、それが普通だと思ってた)。

(NVS と比べて) コマンド体系が整理されている

NVS と比べてコマンド体系が整理されていて、各サブコマンドもコマンド名が直感的だと感じました。

Windows ではインストール先を選べない?

公式ドキュメントを読むかぎり、Windows ではインストール先を選ぶことはできず、次の場所に固定されるようです。

  • Volta 本体: %ProgramFiles%\Volta
  • 各バージョンの Node.js: %LOCALAPPDATA%\Volta\tools\image\node

Node.js のバージョンは package.json で指定する

他のバージョン管理ツールでは、プロジェクトディレクトリに .node-version というファイルを用意して、そこに使用する Node.js のバージョンを書いておく方式をとっているものが多いです。そんな中、Volta では package.json に 独自のプロパティを追加する方式をとっています。このあたりは良し悪しというより、個人の好みやプロジェクトの方針によるかと思います。

個人的にはどちらでもいいんですが、Volta 方式の場合、Volta をアンインストールした後に Volta 独自のプロパティが package.json に残ってしまうのがやや不満です。

Volta のインストールとアンインストール

インストールは winget で行います。

PS> winget install Volta.Volta

シェルを再起動後、バージョン確認。

PS> volta --version
2.0.2

アンインストールはスタートメニュの [設定] > [アプリ] > [インストールされているアプリ] から行います。ただし、この操作では %LOCALAPPDATA%\Volta にあるデータは削除されません。たぶん手動で削除するしかないと思います。

Node.js のダウンロードとインストール

Node.js をインストールするにはvolta installコマンドを使います。このコマンドは、Node.js がローカルのキャッシュ (%LOCALAPPDATA%\Volta\cache) になければリモートから fetch し、デフォルトで使用するバージョンに設定します。「インストール」というよりも「バージョンを切り換える」という意味に近いです。

特定のバージョンをインストールする:

PS> volta install node@12.22.12

最新の LTS (Long Term Support) バージョンをインストールする:

PS> volta install node

Volta の使いかた

使用頻度が比較的高いであろうコマンドの使いかたをメモしておきます。

volta list all

ダウンロード済みの Node.js と、デフォルトとしてセットされているバージョンの一覧を表示します。例えば前節で例示したコマンドを順番に実行した後では次のようになります。

PS> volta list all
   ️ User toolchain:

    Node runtimes:
        v12.22.12
        v22.13.1 (default)
    ...

volta fetch

Node.js のダウンロードだけを実行するコマンドです。volta installのようにデフォルトとしてセットすることはしません。

PS> volta fetch node@18.20.6
PS> volta list all
   ️ User toolchain:

    Node runtimes:
        v12.22.12
        v18.20.6
        v22.13.1 (default)
    ...

この状態から v18.20.6 に切り換えるには、やはりvolta installコマンドを使用します。

volta pin

プロジェクトのルートディレクトリ (package.json があるディレクトリ) で実行すると、そのプロジェクトで使用する Node.js のバージョンを固定することができます。例えば次のようにすると、このプロジェクトにcdしたときに自動的に v18.20.6 に切り換えてくれます。

PS> cd myproject
PS> volta pin node@18.20.6
success: pinned node@18.20.6 (with npm@10.8.2) in package.json
PS> cd ..; node -v
v22.13.1
PS> cd myproject; node -v
v18.20.6

これにより、プロジェクトの package.json に次のプロパティが追加されます。

package.json
  "volta": {
    "node": "18.20.6"
  }

volta uninstall (未実装)

不要になったバージョンを削除するコマンドと思われますが、まだ実装されていないようです。

PS> volta uninstall node@18.20.6
error: Uninstalling node is not supported yet.

じゃあどうするんだというのは公式ドキュメントには見当たりませんが、下記のサイトなどによると、ダウンロード先のフォルダを手動で削除すればよいようです。

ダウンロード先のフォルダは、下記の場所にバージョンごとに保存されています。
%LOCALAPPDATA%\Volta\tools\image\node

hello, world!

Node.js がインストールされたので、早速試しましょう。C 言語だと 4 行くらいかかりますが、JavaScript なら次のように 1 行でいいそうです。

console.log("hello, world!");

実行します。

PS> node ./helloworld.js
hello, world!

これで JavaScript プログラミングの環境が整いました。 次は勉強を兼ねて CSV パーサーを作ってみようと思います。

広告