Node.js のアップデートエラー
ハマった事象についてメモ
基本的にWindowsでNodist使用。
npm アップデートエラー
- Nodist 0.9.1
- Node.js v12.19.0
NodistによりNode.jsの最新版をインストール後、npmもバージョンを合わせたものを入れるには、以下のようにする。
> nodist npm match npm match https://codeload.github.com/npm/cli/tar.gz/v6.14.8 [============== ] 5189/5507 KiB 94% 0.4s
しかし、続けてバージョン確認(など、npmを使うコマンド全般)で、エラーが発生
> npm -v internal/modules/cjs/loader.js:834 throw err; ^ Error: Cannot find module 'C:\Program Files\Nodist\npmv\6.14.8\bin\npm-cli.js' [90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:831:15)[39m [90m at Function.Module._load (internal/modules/cjs/loader.js:687:27)[39m [90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)[39m [90m at internal/main/run_main_module.js:17:47[39m { code: [32m'MODULE_NOT_FOUND'[39m, requireStack: [] }
関連しそうなキーワードで検索するも、
「npmのダウンロードURLが変わったため、URLの部分を書き換えるとなおる」という記事があったが、既にそこは修正済みのバージョン(0.9.1)。
ただ、nodist npm match
時、そういえば少し奇妙なことがあり、ダウンロード終端でぶつ切れる形で次のコマンドが入力可能になった。
(100%まで進んでないし、次のコマンドとの間も空白行が空くはず)
> nodist npm match npm match https://codeload.github.com/npm/cli/tar.gz/v6.14.8 [============== ] 5189/5507 KiB 94% 0.4s >
(本来こんな感じになるはず) > nodist npm match npm match https://codeload.github.com/npm/cli/tar.gz/v6.14.8 [===============] 5507/5507 KiB 100% 0.0s Installation successful. >
アップデート中に何か権限エラーや(管理者権限で実行してはいるが……)、もしくはバグなどで想定外にサイレント強制終了されたのかも知れない。 何回か繰り返しても同じだったため、再現性はある。
先ほどのエラーメッセージでファイルが見つからないと表示されている場所、かつnpmがアップデートで本来展開されるべき場所であると思われるフォルダは、以下になる。
C:\Program Files\Nodist\npmv\6.14.8
- Nodistインストールフォルダを変えている場合は適宜読み替える
そこには、「6.14.8」というフォルダだけ作成されていて、中身は空になっていた。
そこで、実際にダウンロードURL(https://codeload.github.com/npm/cli/tar.gz/v6.14.8)にアクセスして一式をダウンロードし、その中身を当該フォルダに展開した。
展開の際は、zipの中身の .github
や make.bat
などがある階層を、6.14.8
フォルダの直下にする。
すると、とりあえずは動くようになった。
> npm -v 6.14.8
こんな力業の解決で他に問題が出ないか、アップデートが最後まで進まなかったのは何故かはよくわからない。
nodistのverboseなログを出す方法ってあるのかな。