Windows の node バージョン管理ツールを nodist から nvs に変更したけど要件を満たさなかった

Windows で node のバージョンを切り替えるツールはこれまで nodist を使っていて、「久しく更新されていないから他のツールに乗り換えた方がよい」という情報は得ていたがおっくうでやってなかった。

先日、node の新しいバージョンを使うプロジェクトをセットアップしていたら npm ci や npm install で "module not found" というエラーが発生するようになってしまった。

恐らく↓と同様の症状と思う。

こちらには Workaround が書かれているが、この先生き残れないと思うので、他のツールに乗り換えることにした。

ソース資産として、 .node-version があるので、これを参照してくれることが要件となる。たぶん最も有名である nvm は、この条件を満たさないので除外。

ChatGPT さんに聞きながら探したところ、

が良さそうだったので、こちらに乗り換えることにした。

chocolateyscoop に対応しているのでコマンドラインからインストールできる。私は scoop 派。

尚、mac では nodenv を使っているが、こちらも久しく更新されていない。今のところは困っていないが、nvs はクロスプラットフォームとのことなので、mac も nvs に乗り換えても良いかも知れない。

2023.4.21追記

nvs は .node-version を参照して cd したときに自動的に node バージョンを切り替えてくれる、と思っていたのだが、実はそのディレクトリで一度だけ nvs auto を実行する必要があると判り、ちょっと面倒だなと感じている。しばらく使って慣れてみよう。

2023.7.18追記

nvs やっぱりダメだー。

vscode の launch.jsontasks.json で npm コマンドを記述していると、npm コマンドが見つからないというエラーになってしまう。

どうやら vscode からの実行では nvs auto が効かないようだ。 https://github.com/jasongin/nvs/blob/master/README.md#vs-code-support には vscode で使用するには 「launch.json に nvs 固有の記述」をすれば動作すると書いてあるが、ツール固有の定義をするなら nvm を使えばよいじゃん、となる。

nodist ではこの辺りはよろしくやってくれていたので、それができないと代替にならないなー。

Windows にも対応しており、ディレクトリごとに node バージョンを切り替えられるツールとしては他に Volta - https://volta.sh/ がある。 が、このツールは .node-version ではなく、package.json に独自項目を作るらしいのでこちらも要件を満たさない。

もう nvm にして .note-version から .npmrc に移行しようか。。。