Nodeのバージョン管理ツールVOLTA⚡
WindowsのNodeバージョン管理を探して三千里
みなさんWindowsのNodeのバージョン管理ってどうしてますか?
私はNodistを使っていたのですが、WSL環境と相性が悪い(npmのコンフィグが一部Windowsのパスと混在して壊れた)ので、ひとまずWinもLinuxも同じ管理ツールがないものか、と探していたところ、VOLTAがRustで書かれていて早いしマルチプラットホームだぞ、ということで使用してみました。
VOLTA Install
残念ながら新進気鋭なためか、MS開発の新進気鋭のパッケージ管理ツールWingetや毎度おなじみChocolateyには対応していません。
そういうわけでGitHubからインストールしよう。.msiファイルで良いでしょう。
今回入れたバージョンは1.0.1。メジャー昇格おめでとう。みたいなタイミング。
Node Install
他のNodeバージョン管理ツールに付いているような現在のNodeのリストをババーンと列挙するコマンドはないようです。
NodeのLTSをインストールもしくは別バージョンからセット
C:\>volta install node
Nodeの最新版をインストールもしくは別バージョンからセット
C:\>volta install node@latest
インストールする際とバージョンをセットする際、どちらもinstallで行うのがシンプルで漢らしい感あります。
Yarnの最新版をインストールしたい
C:\>volta install yarn@latest
npmやYarn、pnpmあたりのツールもinstallコマンドでインストール可能。
(npmはnodeと共にインストールされます)
現在インストール済みのNode(とツールチェーン)を確認するとき
C:\>volta list all
プロジェクトでバージョン指定するPin止め
C:\Project>volta pin node@10.15
pinってのがモダンなツールっぽいおしゃれ感あります。
このコマンドを使用するとpackage.jsonにvolta向け設定が記載されます。
voltaを使用しているメンバーがこのプロジェクトをデプロイする際、自動で指定したバージョンがインストールされ、使用される仕組みです。自然な流れでいいですね。
この指定方法、そろそろNodeパッケージ管理ツール界わいで合わせてもらいたいよねー、とか思っちゃう今日この頃。
インストールしちゃったnodeのアンインストール
C:\Project>volta uninstall node
error: Uninstalling node is not supported yet.
helpには「The tool to uninstall, e.g. node
, npm
, yarn
, or <package>」って書いてあるけど、現状アンインストールできないようです。
アンインストール手段はあってGitHubでサポートされてました。
サマって訳すと、
~/.volta/tools/image/node/ (Windows上は%LOCALAPPDATA%\VOLTA\tools\image\node)配下のバージョン番号ディレクトリーを消せばおk
という感じで。
WebStormへの登録
(追記:2022/05/18)
WebStorm2022.1からVoltaの機能が強化され、pnpm等のツールパス ~/.volta/bin/pnpm
に対応しました。
下記のimage配下の実体への設定は不要になっています。
(追記:2021/06/29)
~\AppData\Local\Volta\tools\image\packages\pnpm\node_modules\pnpm
WebStormでpnpm等のパッケージ管理ツールのパスを設定するとき、自動で読み取ります。
また、WebStormはコマンドラインを自動生成するとき、bin/pnpm.jsを実行します。そのため、自動で抽出してきたパスの場所がずれると動作しません。
VOLTAが設定するグローバルなツールのパスは ~/.volta/bin/pnpm
です。
このファイルの中身はコマンドが書いてあり、実質的にはショートカット的な働きになっています。そして、このファイルの配下にはpnpm.jsは存在しないのです。
上記のパスはpnpmの例ですが、他のツールの場合もpackages配下を確認してください。
まとめ
使用感としては軽快で扱いやすいです。
VOLTAはシンプルなコマンド体系です。そのため大量のコマンドを覚える必要はなく、VOLTAがやれることに集中できるという選択のためで、そういった面もまた扱いやすさになってますね。
気に入ったので、しばらくはWindowsとWSL共にVOLTA使っていきます。
VOLTAの現場からは以上でーす。
参考
Discussion