Node.jsに脆弱性があるとの情報があったのでアップグレードした。その際に、今まで使っていたNode.jsのパッケージマネージャーをVoltaからmiseに変更した。
Voltaは昨年11月に既にメンテナンスを終了しており、公式でもmiseへの移行を推奨している。
miseのインストール
Windowsでは、標準のwingetでインストールするのが推奨されている。
winget install jdx.mise
しかし、私の環境ではWingetが入っているのになぜか上手くいかなかったので、Scoopでmiseをインストールすることにした。
# Scoopを入れる
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
# Scoopでインストールする
scoop install mise
Scoopでmiseをインストールすると、自動で環境変数が追加される。但し、Git BashやVS Codeのターミナルを起動した状態で行うと反映されないので、それらのウィンドウを一旦閉じて再起動させる必要がある。
PowerShell プロファイル(起動時に自動実行されるスクリプト)にmise activateを追記する。
# プロファイルがなければ作成
if (-not (Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
# activate を追記
Add-Content $PROFILE '(&mise activate pwsh) | Out-String | Invoke-Expression'
PowerShellを再起動して、miseのバージョンと問題がないかを確認する。
mise --version
mise doctor
Node.jsをインストール
グローバルでNode.js(と私の場合はpnpm)をインストール。バージョンを指定したい場合は、指定してインストールする。
mise use -g node@22
mise use -g pnpm@10
Voltaを削除
不要になったVoltaを削除する。
環境変数の削除
Voltaの環境変数が残っていると、Volta側のnodeが見つかり、miseで入れたバージョンが使われない可能性があるので、これらを削除する。

設定のホーム画面から検索窓に「環境変数」と入れると「システム環境変数の編集」が出てくるので選択する。

「システムのプロパティ」ウィンドウが起動するので、下の「環境変数」ボタンをクリック。
ユーザー環境変数からPATH内のC:\Users\<username>\AppData\Local\Volta\bin VOLTA HOME(あれば)を削除し、システム環境変数からpath内のC:\Program Files\Volta\を削除する。
Voltaのディレクトリを削除
PowerShellで削除
Remove-Item -Recurse -Force $env:LOCALAPPDATA\Volta
反映と確認
Git Bash や PowerShell を開き直してから確認。
which -a node
echo $PATH | tr ':' '\n' | grep -i volta
Voltaを含む行が出てこなければ削除できている。
今年に入ってから、これまで以上にセキュリティの問題が出てきているので、いろいろ手間ではあっても更新は適宜やっておきたい。
