WindowsでNode.jsバージョン管理ツールをどれにするか
2021年11月14日時点のWindows10での情報です。
前回は 「 Node.jsとは 」でNode.jsについて調べました。
今回はNode.jsをインストールしていきたい・・・・ところですが、
その前に、
Node.jsのバージョンの切り替え方法を、どうするか決めておく必要があります。
Node.jsのバージョンの切り替えをどうするか
実際の開発では、システム単位でNode.jsのバージョンが変わります。
たとえば
少し前にリリースしたWebサービスの保守作業のときは、Node.js 12.xx.xxでビルドする。
現在、新規作成中のWebサービスは、Node.js 16.xx.xxでビルドする。
といった具合に、実際の開発では結構頻繁にNode.jsのバージョンの切り替えが発生します。
Node.jsのバージョンを切り替える方法としては、主に以下のような方法があります。
- Node.jsのバージョン管理ツールを使用する
- Dockerを使用して、Webサービスごとに環境を作成する。
■ メモ
Node.jsのバージョン管理ツールを使用して、Angularプロジェクトを作成してみた
Windows+Volta+Angularプロジェクトを作成する(まとめ)
Node.jsのバージョン管理ツールを使用する
職場ではWindows10を使用していて、バージョン管理ツールはNodistを使用しています。
別の環境で、Node.jsのバージョン管理ツールを導入しようとしたのですが、Nodistは2019年3月30日に最新バージョン0.9.1がリリースされて以降、ずっと更新がされていません。
まずはバージョン管理ツールを使用する方向で、nodistに代わるバージョン管理ツールは何がいいのか調べてみました。
nvm-windows
- Github: https://github.com/jasongin/nvs
- 2021/09/15にv1.1.8がリリースされている。(スター数18,031)
- nvmのwindows版
- 自動バージョン切り替えがない
- Windowsに対応
- 2021/09/15にv1.1.8がリリースされている
nvs (Node Version Switcher)
- Github: https://github.com/jasongin/nvs
- 2020/07/21にv1.6.0がリリースされている。(スター数1,596)
(2017、2018、2019、2020年とリリースされていますが、2021年のリリースはありません) - コマンドプロンプトから呼び出せない。PowerShellを使用する。
- Windows・Mac・Linuxに対応
Volta
- 公式サイト
- Github: https://github.com/volta-cli/volta
- 2021/09/08にv1.0.5がリリースされている。(スター数4,452)
- Windows・Mac・Linuxに対応
- 自動バージョン切り替えあり
- Rustで作られた高速でシンプルなバージョン管理ツール
fnm
- Github: https://github.com/Schniz/fnm
- 2021/09/17にv1.27.0がリリースされている(スター数5,310)
- Windows・Mac・Linuxに対応
- 自動バージョン切り替えあり
- Rustで作られた高速でシンプルなバージョン管理ツール
- 一般的なシェル(Bash, Zsh, Fish, PowerShell, Windows Command Line Prompt)に対応
- .node-versionと.nvmrcファイルの互換性をサポート
Node.jsのバージョン管理ツールにどれを選ぶか?
nvm-windows
一番スター数が多いのはnvm-windowsです。
日本語のブログ記事も一番多いです。
ただ、自動バージョン切り替えがないのと、クロスプラットフォームでない点で、
今回は選択肢から外しました。
nvs
2021年の更新がされていないので、これも選択肢から外します。
Volataかfnmか
Voltaかfnmかで迷ったのですが、Voltaの方が日本語記事が多いこと、公式サイトがわかりやすいこと、自動バージョン切り替えが便利そうという理由で、今回はVoltaを使ってみようと思います。
Discussion
実は nodist でも運用上はさほど問題になってないですが、新環境構築するにあたって入れ替え検討して試した結果記載しておきます。
結果的に、fnm が一番使い勝手良かったです。(nvsは、一旦外してますが、更新されたのでどうしようかな笑)
コメントありがとうございます!
見てくれる人がいたことに驚きです(笑)
現行の nodist から 切り替える場合は fnm が手間がなくていいようですね。
私は完全に新規開発で nodist のものは、新規に全リプレイスだったので volta 選びましたが
機会があれば fnm も試してみます。
何にしよっかなぁと悩んでたので助かりました。
後で確認したら volta は npx とかも自動で入ってくれました。
fnm は yarn がちょっと古かったです(謎)。npx 使いたいシーンあるので volta のほうが良いのかなと思った次第。
fnm その後です。
https://qiita.com/heppokofrontend/items/fe1c3bc41a0ae943c2ca
すぐに解決できそうにないと分かり、現時点では volta に切り替えました。
分かりやすい記事をありがとうございます。
nvm-windowsのGitHubのURLが記載違いと思いました。
ご指摘ありがとうございます!