※当サイトの記事には、広告・プロモーションが含まれます。

Node.js 18系のnpmでエラー。それ、nvm-windowsのバージョンが原因かも

www.itmedia.co.jp

www.chihayafuru.jp

⇧Shift-JIS「0x5c問題」って可能性を推測してる方がおりましたが、「0x5c問題」ってのがあるのか。

CSVファイルの生成とかで文字コードをShift-JISにしたりしてる例を見たことあるけど、問題ないんかね?

Node.js 18系のnpmでエラー。それ、nvm-windowsのバージョンが原因かも

久々に、nvm-windowsでNode.jsの18系をインストールしてnpmコマンドを実行したら、

ERROR: npm v9.5.1 is known not to run on Node.js v18.16.0. You'll need to upgrade
to a newer Node.js version in order to use this version of npm. This version of
npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You
can find the latest version at https://nodejs.org/.

ERROR:
C:\Users\Toshinobu\AppData\Roaming\nvm\v18.16.0\node_modules\npm\node_modules\@npmcli\arborist:1
../../workspaces/arborist
^

SyntaxError: Unexpected token '.'
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1176:20)
    at Module._compile (node:internal/modules/cjs/loader:1218:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (C:\Users\Toshinobu\AppData\Roaming\nvm\v18.16.0\node_modules\npm\lib\npm.js:1:18)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)

ERROR: npm v9.5.1 is known not to run on Node.js v18.16.0. You'll
need to upgrade to a newer Node.js version in order to use this
version of npm. This version of npm supports the following node
versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You can find the
latest version at https://nodejs.org/.

ERROR:
C:\Users\Toshinobu\AppData\Roaming\nvm\v18.16.0\node_modules\npm\node_modules\@npmcli\arborist:1
../../workspaces/arborist
^

SyntaxError: Unexpected token '.'
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1176:20)
    at Module._compile (node:internal/modules/cjs/loader:1218:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (C:\Users\Toshinobu\AppData\Roaming\nvm\v18.16.0\node_modules\npm\lib\npm.js:1:18)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)

⇧ エラー。

どうやら、

stackoverflow.com

⇧ nvm-windows自体のバージョンを上げる必要があるらしい。

で、

github.com

Upgrading nvm-windows

As of v1.1.8, there is an upgrade utility that will automate the upgrade process.

To upgrade nvm-windows, run the new installer. It will safely overwrite the files it needs to update without touching your node.js installations. Make sure you use the same installation and symlink folder. If you originally installed to the default locations, you just need to click "next" on each window until it finishes.

https://github.com/coreybutler/nvm-windows

⇧ バージョンが、v1.1.8以上であれば、アップグレード用の実行ファイルが同梱されているらしいのだけど、それ以外の場合は、インストーラーを使えってことみたい。

インストーラーを実行する前に、既存のnvm-windowsをオフにしておく必要があるらしい。

で、インストーラーを実行して、アップグレードするバージョンを指定してOK。

で、アップグレードされませんでしたけど...

インストールし直す必要があるってことかね?

「nvm-setup.exe」の方をダウンロードして実行しました。「nvm-setup.exe」の実行前に、nvm offをしておくのを忘れずに。

で、コマンドプロンプトを新しく起ち上げて、旧いnvm-windowsの時にインストールしていたNode.jsをアンインストールして、再度Node.jsをインストール。

エラーが出なくなりました。

それにしても、エラーが分かり辛い...エラーだけ見てるとNode.jsのバグかと勘違いしてしまいそうだわ...

まぁ、Windows環境で且つ、旧いバージョンのnvm-windowsを使っていなければ遭遇しないのかもしれんけど、エラーメッセージだけ見ててもどうにもならん時もあるってことですかね...

ちなみに、

forest.watch.impress.co.jp

⇧ Node.jsのバージョン16がEOLになるようなので、Node.jsのバージョン上げていけるんであれば上げていった方が良さそうsってことですかね。

毎度モヤモヤ感が半端ない...

今回はこのへんで。