いよいよ Nodist では Node.js v18 が動かなかったので nvm-windows に移行する

Windows で Node.js のバージョン管理を行える Nodist というツールを愛用してきた。しかし Nodist は数年前からメンテナンスが行われていないようで、世間的には別のバージョン管理ツールに移行していた。

とはいっても Nodist は自動的に最新の Node.js バージョンも拾い上げてくれるので今までは別に不自由なく Nodist でよかったのだが、最近 Nodist を使って Node.js v18 系にアップデートしたところ、Node.js が正常に動作しなかった。いや、正しくは npm v8 系が正常にインストールできないようである。

症状は以下の記事にも記載されているモノと同じ。Cannot find module '@npmcli/arborist' といったエラーが出る。

コレまでは $ nodist npm match で Node.js 本体のバージョンに合わせて npm のバージョンを更新しており、npm 自体のバージョンアップは全く行わずに運用してきたので問題なかったのだが、Node.js v18 系になって npm v8 系がデフォルトインストールされるようになって、問題が顕在化した。

npm v8 系で必要になるモジュールのシンボリックリンク等を解決してやればとりあえず動作はするようだが、もうそろそろ Nodist 自体が潮時かと思い、人気のありそうな nvm-windows というツールに切り替えることにした。

予め Nodist はアンインストールしておき、Windows 環境に Node.js 等が一切存在しない状態にしておく。そして nvm-setup.exe を使って nvm-windows をインストールする。

以降の作業は GitBash (Git SDK) にて実施している。

# nvm-windows のインストール後、PATH が自動的に通されていることを確認する
$ nvm version
1.1.9

# インストールできる Node.js のバージョン一覧を確認する
$ nvm list available

# バージョンを指定してインストールし、有効にする
$ nvm install 16.17.0
$ nvm use 16.17.0

# 有効にできた
$ node -v
v16.17.0
$ npm -v
8.15.0

自分が普段 MacOS で利用している Nodebrew なんかとも似た使用感。特に問題なし。

ちなみに、MacOS と Linux で利用できる「nvm」というツールと、今回紹介した「nvm-windows」は、ツールとしては別物。

両者でコマンド体系はほとんど揃えてあるようだが、インストール時に間違えないように注意。

というワケで、長らく愛用してきた Nodist と決別して、nvm-windows に乗り換えた次第でした。