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 で管理できるので他のツールと連携しやすいという意見も見かけたので、これからそういうことをしたいといった場面がでてきたら更に活躍するのかなと感じました。