🦔

それ、Volta で解決しませんか?

2023/04/17に公開

自己紹介

こんにちは、駆け出し web エンジニアのです。
現在は都内の SES 企業で働いております。
自分の担当領域は基本的にフロントエンドですが、バックエンドの開発を行うこともあります。

最初にプログラミングに興味を持ち始めたのは緊急事態宣言がきっかけでした。
遊び感覚で始めた Progate が楽しくて、いつの間にか仕事にしたいと思い始めて今に至ります。
おわかりいただけましたでしょうか?エンジニアとして仕事を始めてからまだ 1 年も経っていないレベルです笑

現場での問題

私がいた現場に上司から一つ知らせがやってきました。
「Node16 のサポートが切れる」
というものです。

私がこのプロジェクトに参画したときには Node のバージョンは 18 でと言われていたので、
「なにをそんなに焦ることがあるんだ」
と思っていたんですが、どうやらそうでもないようです。

そう、実はプロジェクトでは Node のバージョンは 16 が使われていたんです。

しかもマイナーバージョンも揃っていない。

つまり、Node のバージョン管理など一切やっていなかったのです。
ちょっとこれはまずいなと思ったのと、上司からの懇願もあり、私主導で

  • Node のバージョンを上げる
  • これを機にバージョン管理を導入する

を推し進めていきました。

そんなときに「使おう!」と思ったのが、今回紹介するVoltaです。

Volta ってなんだ?

「そうだ、Volta使おう」

Volta は 2020 年の終わりに公開された割と新しめな Node のバージョン管理ツールです。

  • Rust 製なのでなんか速い
  • プロジェクトメンバー全員が環境を揃えられる
  • OS が違っても共通のコマンドが使える
  • Node だけではなく、yarn や npm も管理できる(pnpm は実験的)

この 4 つが主な魅力です。メンテナンスもアクティブに行われているようです。

package.jsonに node のバージョンや npm のバージョンを記載することができ、npm ciなど install コマンドを打つだけで、自動的にバージョンを変えることもできます。
つまり、プロジェクトごとにバージョンを固定することができるのです。

まとめ
  • Volta は比較的最近公開された Node のバージョン管理ツール
  • Windows や MacOS、さらには Linux にも対応している
  • バージョンはpackage.jsonに記載される
  • Node だけじゃなく、yarn や npm も管理できる
  • プロジェクトが異なっていても、package.jsonに記載されていれば、yarn installnpm installを打つだけで、自動的にバージョンを変えることもできる

Volta を導入していこう

早速導入手順です。
公式のインストール方法
MacOS と Windows でインストール方法が若干異なるのでお気をつけください。

また、導入前に Node.js や他のバージョン管理ツールはアンインストールしておいてください。

MacOS

柿: 「MacOS の場合は、ターミナルで以下のコマンドを実行してください。」

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

ちなみに、shellbash,zsh,fishどれでも大丈夫です。

インストールするときに自動でパスも通してくれたりします。
インストールが終わったらターミナルを再起動してみてください。

そして以下のコマンドを打ってください。

terminal
volta -v

以下の感じでバージョンが表示されれば、インストールは完了です。

terminal
volta -v
> 1.1.1

これで MacOS は終わりです。
次に windows を見ていきましょう!

Windows

Windows の場合も、公式のインストール方法に従ってインストールしていきます。

まずは開発者モードを ON にしてください(かっこいい名前ですね)

こちらのような WEB サイトを参考にしてください

開発者モードを ON にしたら、公式ページのリンクをクリックしてください

download and run the Windows installer
というリンクがあると思うので、そこをクリックしてください。

そこをクリックすると、インストーラーがダウンロードされるので、ダウンロードが終わったら実行してください

終わりましたら以下のコマンドを実行してください。

cmd
volta -v

以下の感じでバージョンが表示されれば、インストールは完了です。

cmd
volta -v
> 1.1.1

次は Node.js をインストールしていきましょう。

まとめ
  • 導入前に、Node.js や他のバージョン管理ツールはアンインストールしておく。
  • MacOS はターミナルで以下のコマンドを実行する。
    • curl https://get.volta.sh | bash
  • Windows はまず開発者モードを ON にする。
    • 公式ページのリンクをクリックしてインストーラーをダウンロードして実行する。

Node.js をインストールしていこう

下記コマンドを実行してください

ターミナル
volta install node

これでインストールできました。
早いですね。最新の LTS バージョンがインストールされます。

Node.js のバージョンを確認してみましょう

ターミナル
node -v
> v20.13.1

Node はよくアップデートされているので、この記事のバージョンは参考程度に見てください。
もし仮に 18 系がインストールしたい場合は、

ターミナル
volta install node@18

というようにバージョンを指定してインストールできます。
さらにマイナーバージョン以下も指定することができます。

yarnをインストールしたいなとなった場合は

ターミナル
volta install yarn@1

とすれば yarn の 1 系 がインストールできます。
この辺は Mac だろうが Windows だろうがコマンドは同じです。

まとめ
  • インストールはコマンド操作で行う
    • volta install node で Node.js をインストールできる
    • volta install node@16.xx.x で Node.js のバージョンを指定してインストールできる
    • volta install yarn@1 で yarn の 1 系をインストールできる

プロジェクトでのバージョンを固定していこう

次にはプロジェクト全体で node のバージョンを固定する方法について説明します。

下記コマンドを打ってください。

ターミナル
volta pin node

これでpackage.jsonを見に行ってみてください

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

voltaの中にnodeというキーがあり、その値が20.13.1となっていることが確認できますね
これで、このプロジェクトで使用する Node.js のバージョンが固定されました

yarn の 1 系を指定して固定したいときは

ターミナル
volta pin yarn@1

とすることで固定することができます。

package.json
{
  "volta": {
    "node": "20.13.1",
    "yarn": "1.22.17"
  }
}

voltaの中にyarnというキーがあり、その値が1.22.17となっていることが確認できますね
これで、node 同様にこのプロジェクトで使用する yarn のバージョンが固定されました
このようにpinを使うと固定することができます

これでinstallすればローカル環境にこのバージョンがインストールされます。
これでみんな揃った状態で開発を進めることができます。

まとめ
  • volta pin コマンドでバージョンを固定できる

おわりに

以上、いかがでしたでしょうか?

Node.js のバージョン管理ツールとしては、nvmnodenvなどがありますが、voltaはこれらとは違い、プロジェクトごとにバージョンを簡単に固定できるという特徴があります。

voltaを使うことで、プロジェクトごとにバージョンを固定することができるので、プロジェクトごとにバージョンを揃えることができます。

また、voltanpmyarn,pnpmのパッケージ管理ツールとも連携しているので、voltaを使うことで、npmyarn,pnpmのバージョンも固定することができます。

ぜひ皆さんも使ってみてください!

なにかここがおかしい、といった部分があればぜひコメントをお願いします。

ではまた次の記事でお会いしましょう!

GitHubで編集を提案

Discussion