JavaScript ツールマネージャー Volta の覚書

公開日:

目次

今回は、最近プライベートのPCでお世話になっている Volta について、使い方を記事にしてみたいと思います。基本は備忘録としてのメモ書き程度になりますのでご注意ください

Voltaについて

Voltaとは、JavaScript ツールマネージャーです。用途的には nodenv や nodebrew などの node のバージョン管理ツールと同じです。しかし、Volta は JavaScriptのツールマネージャーなので npm や yarn のバージョン管理を行うこともできます。お仕事では nodenv を使用しているのですが、プライベートのPCでは興味本位で Volta を導入しています。

公式サイト ←こちらが公式サイトになります。

すこし GitHub を覗いてみると最初のリリースがされたのが 2018年なので割と新しめのバージョン管理ツールになります。(nodenvが2014年)

Voltaの特徴として、公式が挙げているものを紹介すると、速い堅実ユニバーサル になります。それぞれ簡単に説明します。

速い

Volta は Rust というプログラミング言語で書かれているため、他のバージョン管理ツールより動作が高速だということです。実際使用してみてたしかに速い気はしました。それが開発体験を向上させるかという観点でいくと ? といった感じでした。

堅実

Volta を使用することでプロジェクトに参加する全員が同じツールを使用できるようになります。これは他の node のバージョン管理ツールと同じですね。ただ冒頭でも言ったとおり、Voltaは npm と yarn のバージョンも管理できます。

ユニバーサル

Volta は、Windows・Mac・Linux。どの OS でも動作します。nodenv は MacOS 限定なのでここは Volta の良い点ですね。

インストール方法

次に Volta のインストール方法についてです。

MocOsなどのUNIX系のOSでは以下のコマンドをターミナルで実行することで Volta をインストールすることができます。

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

たったこれだけです。これには感動しました。nodenvだとコマンド1つというわけにはいかず、いくつか設定をしなければいけないので、nodenvと比べるととても簡単だと思いました。
volta --version などで Voltaのバージョンが表示されたらOKです。

上記のコマンドを実行すると、~/.zshrc に下記の記述が自動的にされていてコマンド1つでパスが通っているのがわかると思います。

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

よく使用するコマンド

最後によく使用するコマンドを紹介します。

volta install

volta install は node や npm などの JavaScriptツールのデフォルトバージョンをインストールすることができます。

以下のようにターミナルから実行できます。

# 特定のバージョンを指定してインストール
$ volta install node@14.17.3

# 特定のメジャーバージョンの安定板をインストール
$ volta install node@14

# ツールのLTSをインストール
$ volta install node

# 最新版をインストール
$ volta install node@latest

volta pin

volta pin は主にチームで同じプロジェクトで作業するときに活躍します。 このコマンドを実行することでプロジェクト全体の node や npm, yarn のバージョンを指定できます。

以下のようにターミナルから実行できます。

# Nodeのバージョンを固定
$ volta pin node@16.13.0

# npmのバージョンを固定
$ volta pin npm@8.1.0

volta pin コマンドを実行すると、package.json に以下の記述が自動的に書き込まれます。

{
 ...
 "volta": {
  "node": "16.13.0",
  "npm": "8.1.0"
 }
}

上記の記述がされた package.json をチームで共有することで、チーム内のVoltaをインストールしている人全員が同じバージョンの node と npm を自動的に使用することができます。

volta list

最後に紹介するコマンドは volta list です。 volta list コマンドを実行することで、インストールされているnode、パッケージマネージャー、パッケージを表示させることができます。all というオプションと組み合わせて使用すると、Voltaで管理されているツールを全て表示することもできます。

下記が valta list コマンドを先程の package.json が設置されているディレクトリで実行した結果です。

volta list         
⚡️ Currently active tools:

Node: v16.13.0 (current @ /Users/uirikuto/develop/docker/uidev/themes/uidev/package.json)
npm: v8.1.0 (current @ /Users/uirikuto/develop/docker/uidev/themes/uidev/package.json)
Yarn: v1.22.11 (default)
Tool binaries available: NONE

See options for more detailed reports by running `volta list --help`.

まとめ

最近プライベートのPCで使用している JavaScript ツールマネージャー である Voltaについての記事でした。紹介しておいてなんですが、nodenv をお仕事で使用しているときから爆発的に変わった印象はなかったです。(個人で使用しているからかもしれませんが…)ただ、nodenvと違ってバージョンを json で管理できるので他のツールと連携しやすいという意見も見かけたので、これからそういうことをしたいといった場面がでてきたら更に活躍するのかなと感じました。