nodeのバージョン管理にVoltaを使う@Windows11
nvm-windowsにもちょっと飽きてきたので、Voltaを使ってみたい
やりたいことはnodeのバージョン管理
npmは、各nodeのバージョンにバンドルされているものでいい
参考
いろいろある
- nvm
- fnm
- asdf
- Volta
asdfはいろいろできすぎるのでいったん保留
→miseはWindowsになかった気がするので保留
(asdfって打ちやすい)
追記
miseのWindows版あった
Google trendで見てみるとVoltaかな?
でも、nodeバージョン管理のやつかどうかわからないので、あんまり意味なさそう
Github
uvもだけどRustブーム来てる???
Volta使ってみたいのでnvm-for-windowsをアンインストール
サイズちっさい
👋
Voltaをインストールする
winget install Volta.Volta
バージョン確認
volta --version # 2.0.2
色々入れてみる
volta install node
volta install node@lts
volta install node@22
# 今日時点ではsuccess: installed and set node@22.13.1 (with npm@10.9.2) as default
volta install node@22.12.0
# 細かくバージョン指定も可能
volta install node@20
# 今日時点ではsuccess: installed and set node@20.18.2 (with npm@10.8.2) as default
最後にインストールしたのが、defaultになるっぽい
>volta list all
⚡️ User toolchain:
Node runtimes:
v20.18.2 (default)
v22.12.0
v22.13.1
Package managers:
Packages:
nvm use的なコマンドはない模様
volta install node@x.y.zですでにあるやつを指定すると、インストールはスキップされて、
インストールしたやつをデフォルトにするところだけ動かす(らしい)
なので、
volta list node
v20.18.2
v22.12.0
v22.13.1 (default)
volta install node@20.18.2
volta list node
v20.18.2 (default)
v22.12.0
v22.13.1
的な感じにする必要がありそう
切り替えの時に管理者権限がいらないと嬉しい→未検証
特定のnodeバージョンのアンインストールはコマンドではできない(クソ)
uninstallコマンドはvoltaにインストールしたパッケージをアンインストールするコマンド
nvm uninstallとは別物だった
> volta list node
⚡️ Node runtimes in your toolchain:
v20.18.2
v22.12.0
v22.13.1 (default)
エクスプローラー・CMDなら
%LOCALAPPDATA%\Volta\tools\image\node\
Powershellなら
$env:LOCALAPPDATA\Volta\tools\image\node\
の中にある特定のバージョンのフォルダを消す
各フォルダの中身は↓
消してみる
↓
消えた
参考
備忘
- プロキシ下だとどうなるか
- HTTP(S)_PROXYを見るらしい
- Zscaler(ZPA, ZIA)があるとどうなるか
- プロキシ通ってればダイジョブそう
- インストール、切り替え時の管理者権限が必要か
- シンボリックリンク張ってるので必要
nodeのバージョン自動切換えを試す
現状
以下のようなフォルダ構成を用意
node-20/package.json
cd node-20
npm init
volta pin node@20
cd ../
node-21/package.json
cd node-21
npm init
volta pin node@21
cd ../
node-20に入る
cd node-20
volta list node
node -v
npm -v
node-21に入る
cd node-21
volta list node
node -v
npm -v
→pinしたときのバージョンに自動で切り替わってる
package.jsonのvoltaセクションでメジャーバージョンだけ指定できる?
→できなかった
node-22用のフォルダを用意して初期化、pin
"volta": {
"node": "22.13.1"
}
↓
"volta": {
"node": "22" # ここをメジャーバージョンだけにしてみる
}
この状態で、
volta list node
エラー
バージョンにsemverっぽく書いてもダメ
"volta": {
"node": "^22.0.0"
}
pinは結構あいまいでもできる
volta pin node@22
volta pin node@^22
lock的なものという理解をしておく
Voltaとfnmの比較
nodeのバージョン管理だけに特化するならfnmのほうがよさそうな気がしてきた。
終
制作・著作
━━━━━
ⓃⒽⓀ
いったんvoltaをアンインストール
On Windows, Volta can be uninstalled by selecting it in the list at Start > Settings > Apps and choosing Uninstall.
👋
%LOCALAPPDATA%\Volta\tools\image\node\にはファイルが残るようなので、
%LOCALAPPDATA%\Voltaフォルダごと手動で消す。
👋👋👋
ちゃんと消えてることを確認
Wingetで入れたけど、winget listからも消えていた
追記
アンインストールしても、ユーザー環境数のPATHは消えていなかった