Nodist から脱却する方法第二弾。
経緯
Docker で Node.js のバージョン切替環境を構築するで一度 Docker 環境上に Node.js 環境を作りましたが、メモリ領域の不足で遅かったり Browsersync との連動が面倒だったりしたので、やはり一枚レイヤーを挟まずホスト側でストレートに構築する方法も模索すべきか……と思い至ったので Volta を試すことにしました。
Nodist のアンインストール
今回はPCに直接インストールする形なのでモロに Nodist のバッティングします。そこで、まずは Nodist をアンインストールします。
1. Nodist のアンインストール
まずはアンインストール。コンパネからでも Nodist のインストールフォルダにある uninstall.exe
を実行するのでもどちらでも。

2. フォルダの削除

アンインストールしても Nodist のフォルダやら残骸がインストールフォルダ (デフォルトならば C:\Program Files (x86)\Nodist\
) に残るので、これを強制削除。
3. .npmrc の削除
使用ユーザのフォルダ直下に .npmrc
(C:\Users\<USERNAME>\.npmrc
) が残るのでこれを削除……と言いたいところですが、私の場合は存在していませんでした。
そのため、ここはパス。
4. npm-cache の削除

使用ユーザのAppData\Roaming
の下に npm-cache
(C:\Users\<USERNAME>\AppData\Roaming\npm-cache
) が残るのでこれを削除。
5. 環境変数の確認

環境変数に Nodist の Node.js へのパスが残っている場合はこれを削除……と言いたいところですが、私の場合は存在していませんでした。
そのため、ここもパス。
Volta のインストール
Nodist を削除したら、 Volta をインストールします。

記事執筆時は 1.0.4
が最新でした。この msi
をダウンロード。後は実行してインストール。
>volta -v
1.0.4
入りました。
>volta install node@16.3.0
success: installed and set node@16.3.0 (with npm@7.15.1) as default 9
>node -v
v16.3.0
>npm -v
7.15.1
続いて適当なバージョンの Node.js をインストールします。 npm も入りました。良い感じですね。
>volta install yarn
success: installed and set yarn@1.22.11 as default 0
>yarn -v
1.22.11
yarn も入れます。
とあるプロジェクトで、 Node.js のバージョンを14系で固定してみます。
> volta pin node@14
success: pinned node@14.17.4 (with npm@6.14.14) in package.json
OK.
"volta": {
"node": "14.17.4"
}
package.json
に Volta 使用時の Node.js のバージョンが追記されました。これでプロジェクトごとにバージョンを切り替えられるのは良いですね。