usakdsteen

ゆうさくですてぃーん

あっぷでーと・えぬぴぃえむ

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\下に展開して必要な環境変数等を設定して使ってる)

 

適当にググってみたところ

ここにそれっぽい解決策があった

github.com

まぁ色々と書かれてるわけだけど

具体的に何やったかっていうと

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

とコマンド打って実行したらアップデートに見事成功した

 

 その成功した様子 

f:id:neetsdkasu:20180608055849p:plain

 (※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つのファイルはアプデで使わないし名前変更ではなく最初から削除してもよかったかもしれないが)

 

以上