Windows上でWebアプリを開発する際に node.js を使いたいのに、
その環境構築の段階で、なぜか npm のバージョン確認すらできなくなり困ったので、
後々のためにメモを残します。
症状
C:\Users\****\>npm -v
evalmachine.<anonymous>:47
} = primordials;
^
ReferenceError: primordials is not defined
at evalmachine.<anonymous>:47:5
at Object.<anonymous> (C:\Users\****\AppData\Roaming\npm\node_modules\npm\node_modules\npm-registry-client\node_modules\graceful-fs\fs.js:11:1)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (C:\Users\****\AppData\Roaming\npm\node_modules\npm\node_modules\npm-registry-client\node_modules\graceful-fs\graceful-fs.js:3:27)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
解決法
- node.js をアンインストールします。
winget uninstall OpenJS.NodeJS
- Roaming配下のnpmフォルダを削除します。
rmdir /s /q C:\Users\****\AppData\Roaming\npm
- node.js を再インストールします。
winget install OpenJS.NodeJS.LTS
アンインストールと再インストールは winget を使ってもいいですし、コントロールパネルからアンインストール後、公式サイトから別途ダウンロードし他インストールパッケージを使ってインストールしてもいいです。個人的には winget を使うほうが断然楽なのでおすすめです。