それ、Volta で解決しませんか?
自己紹介
こんにちは、駆け出し web エンジニアの柿です。
現在は都内の SES 企業で働いております。
自分の担当領域は基本的にフロントエンドですが、バックエンドの開発を行うこともあります。
最初にプログラミングに興味を持ち始めたのは緊急事態宣言がきっかけでした。
遊び感覚で始めた Progate が楽しくて、いつの間にか仕事にしたいと思い始めて今に至ります。
おわかりいただけましたでしょうか?エンジニアとして仕事を始めてからまだ 1 年も経っていないレベルです笑
拙い文章ではありますが会話を交えながら書いていこうと思うので、お読みいただけると幸いです!
登場人物
柿: 筆者
上司: チームリーダー
現場での問題
〜 実装スタートしてから 3 日後 〜
上司: 「柿さん、Node16 のサポート切れるってよ!どうしよう!」
柿: 「あー、そうですね。なんか焦ることなんてあるんですか?」
上司: 「うちのプロジェクト Node のバージョン 16 みたいなんだよ。」
柿: 「えっと、、自分がこの PJ 入ったときには 18 入れてって指示受けたんですが、、。」
上司: 「うん?ってことは、みんなローカルの環境はバラバラなのか、、。」
柿: 「そういえば Node のバージョン管理についてはなんにも言ってなかったですね。どうしてるんですか?」
上司: 「してない」
柿: 「ん?」
上司: 「してないよ。そんなことできるの?」
柿: 「できるんですよこれが」
上司: 「 神か!!!!! ちょっと主導で進めてくれんか」
柿: 「えっと時間が、、、」
上司: 「ラーメン食わす」
柿: 「 やります 」
まとめ
ということで、この現場での問題は大きく分けて2つ。
- Node のバージョンをあげたい。
- バージョンの管理をしていないので、揃えたい
でした。
これらを解決するために、小さな脳味噌で考えた結果、Volta を導入してみようと思いました。
Volta ってなんだ?
柿: 「そうだ、Volta使おう」
上司: 「どんなやつなんだ?」
柿: 「2020 年の終わりに公開された割と新しめの管理ツールですよ」
上司: 「いわゆるモダンってやつだな」
柿: 「言いたいだけですか?」
柿: 「特徴としては、」
- Rust 製なのでなんか速い
- プロジェクトメンバー全員が環境を揃えられる
- OS が違っても共通のコマンドが使える
- Node だけではなく、yarn や npm も管理できる
柿: 「この 4 つです」
上司: 「ええな。」
柿: 「割とメンテナンスも頻繁に行われているみたいですよ」
上司: 「ちなみにこれは MacOS 限定なのか?」
柿: 「いえ、Windows と MacOS、さらには Linux にも対応していますよ」
上司: 「ええな。」
上司: 「ちなみにどうやってみんなバージョンが分かるようになるんだ?」
柿: 「ああ、package.json
に記載されますよ」
柿: 「そこでyarn install
などのコマンドを打てば、プロジェクトによってバージョンを変えるってこともできるんですよ」
上司: 「ええな。」
柿: 「ええな bot になってないか?」
上司: 「よし、じゃあ早速導入していこうか。」
上司: 「どうやるん?」
まとめ
- Volta は比較的最近公開された Node のバージョン管理ツール
- Windows や MacOS、さらには Linux にも対応している
- バージョンは
package.json
に記載される - Node だけじゃなく、yarn や npm も管理できる
- プロジェクトが異なっていても、
package.json
に記載されていれば、yarn install
やnpm install
を打つだけで、自動的にバージョンを変えることもできる
Volta を導入していこう
柿: 「じゃあ早速導入していきますね!」
柿: 「まず、Volta をインストールする前に」
柿: 「すでに Node.js や他のバージョン管理ツールはアンインストールしておいてほしいです。」
柿: 「競合されると困るんで一応。」
上司: 「一応、それ大事だな」
柿: 「じゃあ、公式のインストール方法に従ってインストールしていきますね。」
柿: 「MacOS と Windows でインストール方法が違うので、別々に説明していきますよ」
MacOS
柿: 「MacOS の場合は、ターミナルで以下のコマンドを実行してください。」
curl https://get.volta.sh | bash
上司: 「 shell
が zsh
とか fish
の場合でも大丈夫か?」
柿: 「大丈夫ですよ。」
柿: 「bash
,zsh
,fish
は上のコマンドでインストールできます」
柿: 「なんなら自動でパスも通してくれるんで!」
上司: 「私より頭がいいみたいだな」
柿: 「あ、はい」
柿: 「インストールが終わったら一旦ターミナルを再起動してください」
上司: 「じゃあ、再起動してみる」
柿: 「再起動したら、このコマンドを実行してください」
volta -v
柿: 「こんな感じでバージョンが表示されれば、インストールは完了です。」
volta -v
> 1.1.1
上司: 「え、終わり?」
柿: 「はい、終わり」
上司: 「簡単なんだな・・・。」
上司: 「じゃあ、次は Windows だな」
Windows
柿: 「Windows の場合も、公式のインストール方法に従ってインストールしていきますね。」
柿: 「まずは開発者モードを ON にしてください」
上司: 「開発者モード、かっこいい名前だな」
柿: 「こちらのような WEB サイトを参考にしてください」
柿: 「開発者モードを ON にしたら、公式ページのリンクをクリックしてください」
柿: 「download and run the Windows installer」
柿: 「というリンクが有ると思うんで、そこをクリックしてください。」
上司: 「どのへんだ?」
柿: 「Windows Installationっていう小見出しのところです」
上司: 「あ、あった」
柿: 「そこをクリックすると、インストーラーがダウンロードされるので、ダウンロードが終わったら実行してください」
上司: 「できたで」
柿: 「そうしたら、コマンドプロンプトなどで以下のコマンドを実行してください」
volta -v
柿: 「こんな感じでバージョンが表示されれば、インストールは完了です。」
volta -v
> 1.1.1
上司: 「Windows でも簡単だったな」
柿: 「はい、心配しなくても大丈夫です」
柿: 「じゃあ、次は Node.js をインストールしていきましょう」
まとめ
- 導入前に、Node.js や他のバージョン管理ツールはアンインストールしておく。
- MacOS はターミナルで以下のコマンドを実行する。
curl https://get.volta.sh | bash
- Windows はまず開発者モードを ON にする。
- 公式ページのリンクをクリックしてインストーラーをダウンロードして実行する。
Node.js をインストールしていこう
柿: 「じゃあ、Node.js をインストールしていきましょう」
上司: 「ついにきたな。」
上司: 「じゃあ、どうやってインストールするんだ?」
上司: 「コマンドでやるんだな?」
柿: 「お見通しですね」
柿: 「下記コマンドを実行してください」
volta install node
柿: 「これでインストールできました。」
上司: 「はや!」
柿: 「じゃあ、インストールされた Node.js のバージョンを確認してみましょう」
node -v
> v18.15.0
柿: 「最新のバージョンがインストールされていることが確認できましたね」
柿: 「16 系がインストールしたい場合は、」
volta install node@16
柿: 「というようにバージョンを指定してインストールできます」
上司: 「バージョン指定できるんだな」
上司: 「これは便利だ」
柿: 「では次に yarn をインストールしていきましょうか」
柿: 「以下のコマンドを実行してください」
volta install yarn@1
柿: 「これで yarn の 1 系 がインストールできました」
上司: 「Windows でも Mac でもコマンドが同じなのは便利だな」
柿: 「では次はプロジェクトでのバージョンを固定していきましょうか」
まとめ
- インストールはコマンド操作で行う
-
volta install node
で Node.js をインストールできる -
volta install node@16
で Node.js のバージョンを指定してインストールできる -
volta install yarn@1
で yarn の 1 系をインストールできる
-
プロジェクトでのバージョンを固定していこう
柿: 「どうやってバージョンを明記して揃えるか、覚えていますか?」
上司: 「えーt」
柿: 「package.json でしたね」
上司: 「そ、そうでした!」
上司: 「もしかして手書きか?」
柿: 「いえ、これもコマンドでやります。」
柿: 「予め固定したいプロジェクトのディレクトリにcd
コマンドで移動しておいてください」
柿: 「移動できたら、以下のコマンドを実行してください」
volta pin node
柿: 「これでpackage.json
を見に行ってみてください」
{
"volta": {
"node": "18.15.0"
}
}
柿: 「volta
の中にnode
というキーがあり、その値が18.15.0
となっていることが確認できますね」
柿: 「これで、このプロジェクトで使用する Node.js のバージョンが固定されました」
上司: 「なるほど、あっさりだな」
上司: 「じゃあ、yarn も固定してみよう」
上司: 「コマンドはこうか?」
volta pin yarn@1
柿: 「はい、その通りです」
柿: 「では、package.json
を見てみましょう」
{
"volta": {
"node": "18.15.0",
"yarn": "1.22.17"
}
}
柿: 「volta
の中にyarn
というキーがあり、その値が1.22.17
となっていることが確認できますね」
柿: 「これで、このプロジェクトで使用する yarn のバージョンが固定されました」
柿: 「このようにpin
を使うと固定することができます」
上司: 「これでinstall
すればローカル環境にこのバージョンがインストールされるんだな」
柿: 「はい、これでみんな揃いますね!!」
上司: 「助かった!!」
上司: 「やっとスタート地点に立った気分だよ」
柿: 「頑張って実装しましょうね!WBS 破綻してますけど」
上司: 「ハハ(白目)」
まとめ
-
volta pin
コマンドでバージョンを固定できる
おわりに
以上、いかがでしたでしょうか?
Node.js のバージョン管理ツールとしては、nvm
やnodenv
などがありますが、volta
はこれらとは違い、プロジェクトごとにバージョンを固定できるという特徴があります。
volta
を使うことで、プロジェクトごとにバージョンを固定することができるので、プロジェクトごとにバージョンを揃えることができます。
また、volta
はnpm
やyarn
のパッケージ管理ツールとも連携しているので、volta
を使うことで、npm
やyarn
のバージョンも固定することができます。
ぜひ皆さんも使ってみてください!
なにかここがおかしい、といった部分があればぜひコメントをお願いします。
ではまた次の記事でお会いしましょう!
Discussion