Voltaを解説!手間のかからないJavaScriptツールマネージャ

2020年12月21日にVoltaの初の安定バージョン1.0がリリースされました🎉

Voltaは手間のかからないJavaScriptパッケージマネージャであることを掲げており、グローバルインストールされたJavaScriptツールをプロジェクトごとに簡単に管理することができます。

Voltaを導入すると以下のようにディレクトリを切り替えるだけでグローバルインストールされたJavaScriptツールのバージョンを切り替えることができます。

volta       $: cd project1
project1 $: tsc --version
Version 3.4.5
project1 $: cd ..
volta       $: cd project2
project2 $: tsc --version
Version 2.9.2

これだけでも「Volta便利!」と思った方も多いのではないでしょうか。

この記事では以下の公式ドキュメントをもとにVoltaの使い方を解説していきます。

※ 記事執筆時点では以下のバージョンを使用しています。

$: volta --version
1.0.1

Voltaをインストール

まずはVoltaをインストールしていきましょう。

Unix系OS

Unix系OSの場合は以下のコマンドでVoltaをインストールすることができます。

インストール後はターミナルを再起動するか.bash_profileなどを再読み込みしてください。

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

Windows

Windowsの場合はこちらからVoltaをインストールしてください。

Windows Subsystem for Linux

WSLの場合はUnix系OSと同じ手順でインストールしてください。

Voltaでツール管理

ここからは実際にVoltaを使用してJavaScriptツールの管理を体験していきます。

まずはプロジェクト用のディレクトリを2つ作成します。

以下のコマンドを実行してください。

mkdir project1
mkdir project2

ここではこの2つのプロジェクトは別々のバージョンのnode・typescriptを使用していると仮定して進めていきます。

Nodeエンジン(node・yarn)のバージョンを固定

Voltaではvolta pinコマンドを使用してNodeエンジンのバージョンをプロジェクトごとに固定することができます。

先ほど作成したそれぞれのプロジェクトでNodeエンジンのバージョンを固定してみましょう。

以下のコマンドを実行してください。

cd project1
npm init -y
volta pin node@14.15.4

volta pinコマンドを実行するとpackage.jsonに以下の設定が追加されます。

"volta": {
    "node": "14.15.4"
}

このようにvolta pinを実行するとpackage.jsonにnodeのバージョンが記載されます。

voltaはこの設定を見て使用するバージョンを切り替えてくれるので、ディレクトリを切り替えるだけでnodeのバージョンも切り替えることができます。

また、package.jsonに記載されることでプロジェクトメンバー内で必ず同じバージョンのnodeを使用でき、さらにバージョン管理にも含めることができるのもVoltaの利点です。

それでは以下のコマンドでnodeのバージョンを確認してみてください。

$: node --version
v14.15.4

このように14.15.4が使用されているのが確認できます。

次にproject2で違うバージョンを指定してみます。

以下のコマンドを実行してください。

cd project2
npm init -y
volta pin node@10.15.3

こちらのプロジェクトではvolta pinでnodeのバージョンを10.15.3に固定しました。

それでは以下のコマンドでnodeのバージョンを確認してみてください。

$: node --version
v10.15.3

このようにディレクトリを切り替えるだけでnodeのバージョンを切り替えることができます。

JavaScriptツールのバージョンを固定

Nodeエンジンの他にもVoltaではグローバルインストールされたJavaScriptツールのバージョンを自動的に切り替えてくれます。

まずは以下のコマンドでtypescriptをインストールしてください。

npm i -g typescript@4.1.3

このコマンドを実行するとグローバルにtypescriptの4.1.3がインストールされます。

$: tsc --version
Version 4.1.3

次にproject1ではtypescriptの3.4.5を使用していると仮定してインストールしていきます。

以下のコマンドを実行してください。

$: cd project1
$: tsc --version
Version 4.1.3

現状では先ほどインストールしたtypescriptの4.1.3が認識されています。

次にproject1にtypescriptの3.4.5をインストールします。

以下のコマンドを実行してください。

npm i typescript@3.4.5

先ほどまではtypescriptのバージョン4.1.3が認識されていましたが、このようにプロジェクトにtypescriptの3.4.5がインストールされているとVoltaが自動的にバージョンを切り替えてくれます。

以下のコマンドを実行して確認してみてください。

$: tsc --version
Version 3.4.5

このようにプロジェクトで使用しているバージョンに合わせて3.4.5に切り替わっています。

次にproject2にも別のバージョンのtypescriptをインストールしてバージョンが切り替わるか確認してみます。

以下のコマンドを実行してください。

cd project2
npm i typescript@2.9.2

typescriptの2.9.2をインストールしました。

以下のコマンドでバージョンを確認してみます。

$: tsc --version
Version 2.9.2

このようにディレクトリを切り替えるだけでtypescriptのバージョンを切り替えることができました。

まとめ

今回はグローバルインストールされたJavaScriptツールのマネージャであるVoltaの使い方を見てきました。

「手間のかからない」を掲げている通り、ディレクトリを切り替えるだけなので、非常に手軽に扱うことができました。

さらにVoltaはpackage.jsonに記載されている内容を見にいくので、バージョン管理と相性が良いこともVoltaのメリットであると思います。

最近はDockerなどを使用してIaCを取り入れる機会が増えてきていますが、Dockerを使うまででもない場合などはVoltaの採用を検討してみてはいかがでしょうか。

それではここまでお読みいただきありがとうございました。