Node.js のバージョン管理ツールは Volta がとても便利


こんにちは、森田です。
Node.js のバージョン管理ツールは色々ありますが、Volta がとても便利だったので紹介します。今後はVolta が使われることが多くなると思います(すでにそうなっているかもしれません)

Volta – The Hassle-Free JavaScript Tool Manager

サイトのタイトルにこのように書かれています。

The Hassle-Free JavaScript Tool Manager

https://volta.sh/

直訳すると「手間のかからない JavaScript ツールマネージャー」と言ったところでしょうか、そのキャッチフレーズどおりの手間のかからない使いやすい Node.js のバージョン管理ツールでした。

サイトに書かれている3つのキーワードで特徴を紹介させていただきます。

速い

Rust製ということで実行速度が速いです。
実際 node のインストールも他のツールより全然速いと感じました。

信用性

ワークフローに干渉せず、プロジェクトに参加する全員が同じバージョンのNodeを使えるようになります。

ユニバーサル

Windows でも Mac でも M1 Mac でも完全に動作するとのことです。
Rosetta を使わず M1 Mac でも動くので安心して M1 Mac にすることができます。
Win/Mac でも同じツールでバージョン管理できるのもいいですね。

他の Node.js のバージョン管理ツールと比べてどこが便利?

nvm や nodenv などNode.js のバージョン管理ツールは既に色々存在しますが、Volta が優れているなと思ったところを紹介します。

Volta 本体のインストールが簡単

わりとインストールが面倒な印象がある Node.js のバージョン管理ツールですが、
Mac 含む Unix 環境は以下のコマンドで Volta のインストールができます。

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

私は Mac で zsh ですが上記のコマンドでインストールでき、すぐに使えました。
PATH の設定もされていました。

Windows はインストーラが用意されています。
https://docs.volta.sh/guide/getting-started

Mac でしたら Homebrew でもインストールできるみたいです。
https://formulae.brew.sh/formula/volta

自動バージョン切り替えに設定ファイルがない

nodenv であれば .node-version ファイル、nvm なら .nvmrcファイルなど、プロジェクトによって node のバージョンを自動で切り替えるために設定ファイルをプロジェクトルートに置くことが多いですが、Volta は設定ファイルがありません。package.json に書き込まれます。

試しにプロジェクトに node をインストールしてみましょう。
volta コマンドに pin オプションを指定して node をインストールします。

volta pin node

上記で最新のLTS(執筆時は 16.13.0)がインストールされます。

package.json には以下のようなバージョン情報が書き込まれます。

"volta": {
  "node": "16.13.0"
}

このpackage.json を共有すればプロジェクトメンバーで node のバージョンを統一できます。
プロジェクトによっては大量のドットファイルが必要となったりするので1つでも設定ファイルが減るのはいいですね。ただ、package.json に書かれているとわかりずらいという弱点もありますので、README には必ず書くと良さそうです。

node のインストールは自動

package.json を git clone などで受け取った側は Volta がインストールされていると特にコマンドを実行することもなく node が自動でインストールされます。

$npm install$node -v など nodeコマンドを初回実行したタイミングでインストールが走ります。
前記の通り Rust 製でインストールも高速なので気付いたらインストールされているという感覚です。

まとめ

高速で設定ファイルいらずで自動インストール、本当に「手間のかからない」ツールだと思いました。
Node.js のバージョン管理ツールは Volta にしていきたい所存です。

Gaji-Laboでは、React経験が豊富なフロントエンドエンジニアを募集しています

弊社ではReactの知見で事業作りに貢献したいフロントエンドエンジニアを募集しています。大きな制作会社や事業会社とはひと味もふた味も違うGaji-Laboを味わいに来ませんか?

もちろん、一緒にお仕事をしてくださるパートナーさんも随時募集中です。まずはお気軽に声をかけてください。お仕事お問い合わせや採用への応募、共に大歓迎です!

求人応募してみる!

投稿者 Morita Sou

フロントエンドグループチームマネージャー。
適切な技術提案やプロジェクトを円滑に進めるコミュニケーションを心掛けています。
CMS構築や開発環境の構築・最適化などを得意としています。チームビルティングと採用と開発環境を快適にすることにいつも燃えています。