node.jsのnpmのアップデートon Windows
npmさんからnpmの最新アプデがあるので
npm i npm
しろとメッセージが出るのだが
そのまま実行すると
$ npm i npm
npm ERR! path C:\Dev\node\npm.cmd
npm ERR! code EEXIST
npm ERR! Refusing to delete C:\Dev\node\npm
ules\npm and not a link
npm ERR! File exists: C:\Dev\node\npm.cmd
npm ERR! Move it away, and try again.
みたいなエラーが出てアプデに失敗する
(※コマンドプロンプト上で実行してるけど環境変数PROMPTを$P$_$$$Sにしてるため$からコマンド打つ感じになってる)
(※ node.jsは公式からzipでダウンロードしてC:\Dev\node\下に展開して必要な環境変数等を設定して使ってる)
適当にググってみたところ
ここにそれっぽい解決策があった
まぁ色々と書かれてるわけだけど
具体的に何やったかっていうと
node.jsのディレクトリ直下の
npm
npm.cmd
npx
npx.cmd
の4つのファイルのファイル名を変更した上で
変更したnpm.cmdのコマンドからnpmの更新を実行した
今回はそれぞれ
npm_temp
npm_temp.cmd
npx_tmp
npx_temp.cmd
という感じに名前変更して
npm_temp.cmd i npm
とコマンド打って実行したらアップデートに見事成功した
その成功した様子
(※lsなるコマンド打ってるけどDIR /D /O %*をPATH通る場所にls.batとして置いて使ってるだけ(まぁ説明しなくても見て分かるか…))
なお、名前を変えたファイルら(npm_temp,npm_temp.cmd,npx_tmp,npx_temp.cmd)はアプデ成功した時点で(アプデで新しいnpm,npm.cmd,npx,npx.cmdが作られたため)もう不要なので削除した
(まぁどうせ削除するから npm, npx, npx.cmd の3つのファイルはアプデで使わないし名前変更ではなく最初から削除してもよかったかもしれないが)
以上