Edited at

"npm update -g npm"(npm自身のアップデート)が適用できないのは、実行元のnpmが複数存在するため

More than 1 year has passed since last update.


▼"npm update -g npm"が適用されない


  • エラーは起きない

  • ただし、バージョンも上がらない

  • 何が原因かわからない...


▼環境

Windows: 10

Nodist: 0.8.8

└ Node.js: 8.11.2

└ NPM: 5.6.0


▼参考

nodistでnode.jsを入れた後npmがバージョンアップできない問題 - Qiita

PowerShellでwhichコマンド - Qiita


▼やったこと


  • 現在使われているnpmがどこから実行されているかを確認する

    (Get-Command npm).Definition


  • npm update -g npmが成功してバージョンが6.1.0になっているnpm以外をリネームする

    ※バージョンが低いままのものを使えないようにする


  • バージョン確認して、npm自体のバージョンが上がっていることを確認する



▼作業ログから重要なところだけ抽出

Windows PowerShell

Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> node --version
v8.11.2

PS C:\Program Files (x86)\Nodist\bin> ls

ディレクトリ: C:\Program Files (x86)\Nodist\bin

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/03/04 15:00 etc
d----- 2018/07/01 15:20 node_modules
-a---- 2018/04/05 23:24 345 firebase
-a---- 2018/04/05 23:24 222 firebase.cmd
-a---- 2018/03/04 15:01 337 node-sass
-a---- 2018/03/04 15:01 214 node-sass.cmd
-a---- 2016/12/17 6:34 3204096 node.exe
-a---- 2016/12/17 6:34 92 nodist
-a---- 2016/12/17 6:34 384 nodist.cmd
-a---- 2016/12/17 6:34 366 nodist.ps1
-a---- 2016/12/17 6:34 967 nodist.sh
-a---- 2016/12/17 6:34 174 nodist_bash_profile_content.sh
-a---- 2018/07/01 15:19 327 npm
-a---- 2018/07/01 15:19 204 npm.cmd
-a---- 2016/12/17 6:34 3211264 npm.exe
-a---- 2018/07/01 15:19 327 npx
-a---- 2018/07/01 15:19 204 npx.cmd
-a---- 2018/03/11 10:51 321 vue
-a---- 2018/03/11 10:51 331 vue-init
-a---- 2018/03/11 10:51 208 vue-init.cmd
-a---- 2018/03/11 10:51 331 vue-list
-a---- 2018/03/11 10:51 208 vue-list.cmd
-a---- 2018/03/11 10:51 198 vue.cmd
-a---- 2018/03/11 11:34 379 webpack-dev-server
-a---- 2018/03/11 11:34 256 webpack-dev-server.cmd

PS C:\Program Files (x86)\Nodist\bin> npm -v
5.6.0
PS C:\Program Files (x86)\Nodist\bin> npm.cmd -v
5.6.0
PS C:\Program Files (x86)\Nodist\bin> npm.exe -v
6.1.0

PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Users\user\AppData\Roaming\npm\npm.cmd

PS C:\Program Files (x86)\Nodist\bin> move npm npm-orig
PS C:\Program Files (x86)\Nodist\bin> move .\npm.cmd npm-orig.cmd

PS C:\Program Files (x86)\Nodist\bin> move C:\Users\user\AppData\Roaming\npm\npm.cmd C:\Users\user\AppData\Roaming\npm\npm-orig.cmd
PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Users\user\AppData\Roaming\npm\npm
PS C:\Program Files (x86)\Nodist\bin> move C:\Users\user\AppData\Roaming\npm\npm C:\Users\user\AppData\Roaming\npm\npm-orig

PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Program Files (x86)\Nodist\bin\npm.exe
PS C:\Program Files (x86)\Nodist\bin> npm --version
6.1.0


▼ログ(作業ログなので、見たい方だけどうぞ)

Windows PowerShell

Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> node --version
v8.11.2
PS C:\WINDOWS\system32> node --version
v8.11.2
PS C:\WINDOWS\system32> npm i npm
npm WARN saveError ENOENT: no such file or directory, open 'C:\WINDOWS\system32\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'C:\WINDOWS\system32\package.json'
npm WARN system32 No description
npm WARN system32 No repository field.
npm WARN system32 No README data
npm WARN system32 No license field.

+ npm@6.1.0
added 682 packages in 121.553s
PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> npm install -g npm
C:\Program Files (x86)\Nodist\bin\npx -> C:\Program Files (x86)\Nodist\bin\node_modules\npm\bin\npx-cli.js
C:\Program Files (x86)\Nodist\bin\npm -> C:\Program Files (x86)\Nodist\bin\node_modules\npm\bin\npm-cli.js
+ npm@6.1.0
updated 1 package in 120.635s
PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> npm install -g npm
C:\Program Files (x86)\Nodist\bin\npx -> C:\Program Files (x86)\Nodist\bin\node_modules\npm\bin\npx-cli.js
C:\Program Files (x86)\Nodist\bin\npm -> C:\Program Files (x86)\Nodist\bin\node_modules\npm\bin\npm-cli.js
+ npm@6.1.0
updated 1 package in 138.046s
PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> nodist
(x64)
7.2.1
8.9.4
8.10.0
> 8.11.2 (global: v8.11.2)
PS C:\WINDOWS\system32> nvm
nvm : 用語 'nvm' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください

発生場所 :1 文字:1
+ nvm
+ ~~~
+ CategoryInfo : ObjectNotFound: (nvm:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

PS C:\WINDOWS\system32> node --version
v8.11.2
PS C:\WINDOWS\system32> npm update npm
PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> npm update -g npm
PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> nodist npm 6.1.0
npm 6.1.0
https://codeload.github.com/npm/npm/tar.gz/v6.1.0 [============ ] 6840/8378 KiB 82% 1.1s
PS C:\WINDOWS\system32> npm --version
5.6.0
PS C:\WINDOWS\system32> where npm
PS C:\WINDOWS\system32> cd ..\..
PS C:\> cd ..
PS C:\> where npm
PS C:\> where npm
PS C:\> cd '.\Program Files\'
PS C:\Program Files> cd ..
PS C:\> cd '.\Program Files (x86)\'
PS C:\Program Files (x86)> ls .\Nodist\

ディレクトリ: C:\Program Files (x86)\Nodist

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/07/01 15:19 bin
d----- 2018/02/28 21:10 etc
d----- 2018/02/28 21:09 lib
d----- 2018/02/28 21:09 node_modules
d----- 2018/02/28 21:09 npm
d----- 2018/07/01 15:32 npmv
d----- 2018/02/28 21:09 v
d----- 2018/05/24 19:44 v-x64
-a---- 2018/05/24 19:46 7 .node-version-global
-a---- 2018/07/01 15:32 5 .npm-version-global
-a---- 2016/12/17 6:34 11810 cli.js
-a---- 2016/12/17 6:36 353 har-validator
-a---- 2016/12/17 6:36 230 har-validator.cmd
-a---- 2016/12/17 6:34 1114 LICENSE.txt
-a---- 2016/12/17 6:36 313 mime
-a---- 2016/12/17 6:36 190 mime.cmd
-a---- 2016/12/17 6:36 325 mkdirp
-a---- 2016/12/17 6:36 202 mkdirp.cmd
-a---- 2016/12/17 6:36 313 ncp
-a---- 2016/12/17 6:36 190 ncp.cmd
-a---- 2016/12/17 6:34 17182360 node.exe
-a---- 2018/02/28 21:10 63 Nodist website.url
-a---- 2016/12/17 6:34 1064 package.json
-a---- 2016/12/17 6:36 317 rimraf
-a---- 2016/12/17 6:36 194 rimraf.cmd
-a---- 2016/12/17 6:36 325 semver
-a---- 2016/12/17 6:36 202 semver.cmd
-a---- 2016/12/17 6:36 331 sshpk-conv
-a---- 2016/12/17 6:36 208 sshpk-conv.cmd
-a---- 2016/12/17 6:36 331 sshpk-sign
-a---- 2016/12/17 6:36 208 sshpk-sign.cmd
-a---- 2016/12/17 6:36 335 sshpk-verify
-a---- 2016/12/17 6:36 212 sshpk-verify.cmd
-a---- 2018/02/28 21:10 105075 uninstall.exe
-a---- 2016/12/17 6:34 3661 usage.txt
-a---- 2016/12/17 6:36 327 uuid
-a---- 2016/12/17 6:36 204 uuid.cmd
-a---- 2018/05/24 19:44 128068 versions.json
-a---- 2016/12/17 6:36 317 vows
-a---- 2016/12/17 6:36 194 vows.cmd

PS C:\Program Files (x86)> cd .\Nodist\
PS C:\Program Files (x86)\Nodist> ls

ディレクトリ: C:\Program Files (x86)\Nodist

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/07/01 15:19 bin
d----- 2018/02/28 21:10 etc
d----- 2018/02/28 21:09 lib
d----- 2018/02/28 21:09 node_modules
d----- 2018/02/28 21:09 npm
d----- 2018/07/01 15:32 npmv
d----- 2018/02/28 21:09 v
d----- 2018/05/24 19:44 v-x64
-a---- 2018/05/24 19:46 7 .node-version-global
-a---- 2018/07/01 15:32 5 .npm-version-global
-a---- 2016/12/17 6:34 11810 cli.js
-a---- 2016/12/17 6:36 353 har-validator
-a---- 2016/12/17 6:36 230 har-validator.cmd
-a---- 2016/12/17 6:34 1114 LICENSE.txt
-a---- 2016/12/17 6:36 313 mime
-a---- 2016/12/17 6:36 190 mime.cmd
-a---- 2016/12/17 6:36 325 mkdirp
-a---- 2016/12/17 6:36 202 mkdirp.cmd
-a---- 2016/12/17 6:36 313 ncp
-a---- 2016/12/17 6:36 190 ncp.cmd
-a---- 2016/12/17 6:34 17182360 node.exe
-a---- 2018/02/28 21:10 63 Nodist website.url
-a---- 2016/12/17 6:34 1064 package.json
-a---- 2016/12/17 6:36 317 rimraf
-a---- 2016/12/17 6:36 194 rimraf.cmd
-a---- 2016/12/17 6:36 325 semver
-a---- 2016/12/17 6:36 202 semver.cmd
-a---- 2016/12/17 6:36 331 sshpk-conv
-a---- 2016/12/17 6:36 208 sshpk-conv.cmd
-a---- 2016/12/17 6:36 331 sshpk-sign
-a---- 2016/12/17 6:36 208 sshpk-sign.cmd
-a---- 2016/12/17 6:36 335 sshpk-verify
-a---- 2016/12/17 6:36 212 sshpk-verify.cmd
-a---- 2018/02/28 21:10 105075 uninstall.exe
-a---- 2016/12/17 6:34 3661 usage.txt
-a---- 2016/12/17 6:36 327 uuid
-a---- 2016/12/17 6:36 204 uuid.cmd
-a---- 2018/05/24 19:44 128068 versions.json
-a---- 2016/12/17 6:36 317 vows
-a---- 2016/12/17 6:36 194 vows.cmd

PS C:\Program Files (x86)\Nodist> cd .\bin\
PS C:\Program Files (x86)\Nodist\bin> npm -v
5.6.0
PS C:\Program Files (x86)\Nodist\bin> ls

ディレクトリ: C:\Program Files (x86)\Nodist\bin

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/03/04 15:00 etc
d----- 2018/07/01 15:20 node_modules
-a---- 2018/04/05 23:24 345 firebase
-a---- 2018/04/05 23:24 222 firebase.cmd
-a---- 2018/03/04 15:01 337 node-sass
-a---- 2018/03/04 15:01 214 node-sass.cmd
-a---- 2016/12/17 6:34 3204096 node.exe
-a---- 2016/12/17 6:34 92 nodist
-a---- 2016/12/17 6:34 384 nodist.cmd
-a---- 2016/12/17 6:34 366 nodist.ps1
-a---- 2016/12/17 6:34 967 nodist.sh
-a---- 2016/12/17 6:34 174 nodist_bash_profile_content.sh
-a---- 2018/07/01 15:19 327 npm
-a---- 2018/07/01 15:19 204 npm.cmd
-a---- 2016/12/17 6:34 3211264 npm.exe
-a---- 2018/07/01 15:19 327 npx
-a---- 2018/07/01 15:19 204 npx.cmd
-a---- 2018/03/11 10:51 321 vue
-a---- 2018/03/11 10:51 331 vue-init
-a---- 2018/03/11 10:51 208 vue-init.cmd
-a---- 2018/03/11 10:51 331 vue-list
-a---- 2018/03/11 10:51 208 vue-list.cmd
-a---- 2018/03/11 10:51 198 vue.cmd
-a---- 2018/03/11 11:34 379 webpack-dev-server
-a---- 2018/03/11 11:34 256 webpack-dev-server.cmd

PS C:\Program Files (x86)\Nodist\bin> npm.cmd -v
5.6.0
PS C:\Program Files (x86)\Nodist\bin> npm.exe -v
6.1.0
PS C:\Program Files (x86)\Nodist\bin> Where-Object npm
PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Users\user\AppData\Roaming\npm\npm.cmd
PS C:\Program Files (x86)\Nodist\bin> move npm npm-orig
PS C:\Program Files (x86)\Nodist\bin> ls

ディレクトリ: C:\Program Files (x86)\Nodist\bin

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/03/04 15:00 etc
d----- 2018/07/01 15:20 node_modules
-a---- 2018/04/05 23:24 345 firebase
-a---- 2018/04/05 23:24 222 firebase.cmd
-a---- 2018/03/04 15:01 337 node-sass
-a---- 2018/03/04 15:01 214 node-sass.cmd
-a---- 2016/12/17 6:34 3204096 node.exe
-a---- 2016/12/17 6:34 92 nodist
-a---- 2016/12/17 6:34 384 nodist.cmd
-a---- 2016/12/17 6:34 366 nodist.ps1
-a---- 2016/12/17 6:34 967 nodist.sh
-a---- 2016/12/17 6:34 174 nodist_bash_profile_content.sh
-a---- 2018/07/01 15:19 327 npm-orig
-a---- 2018/07/01 15:19 204 npm.cmd
-a---- 2016/12/17 6:34 3211264 npm.exe
-a---- 2018/07/01 15:19 327 npx
-a---- 2018/07/01 15:19 204 npx.cmd
-a---- 2018/03/11 10:51 321 vue
-a---- 2018/03/11 10:51 331 vue-init
-a---- 2018/03/11 10:51 208 vue-init.cmd
-a---- 2018/03/11 10:51 331 vue-list
-a---- 2018/03/11 10:51 208 vue-list.cmd
-a---- 2018/03/11 10:51 198 vue.cmd
-a---- 2018/03/11 11:34 379 webpack-dev-server
-a---- 2018/03/11 11:34 256 webpack-dev-server.cmd

PS C:\Program Files (x86)\Nodist\bin> move .\npm.cmd npm-orig.cmd
PS C:\Program Files (x86)\Nodist\bin> ls

ディレクトリ: C:\Program Files (x86)\Nodist\bin

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/03/04 15:00 etc
d----- 2018/07/01 15:20 node_modules
-a---- 2018/04/05 23:24 345 firebase
-a---- 2018/04/05 23:24 222 firebase.cmd
-a---- 2018/03/04 15:01 337 node-sass
-a---- 2018/03/04 15:01 214 node-sass.cmd
-a---- 2016/12/17 6:34 3204096 node.exe
-a---- 2016/12/17 6:34 92 nodist
-a---- 2016/12/17 6:34 384 nodist.cmd
-a---- 2016/12/17 6:34 366 nodist.ps1
-a---- 2016/12/17 6:34 967 nodist.sh
-a---- 2016/12/17 6:34 174 nodist_bash_profile_content.sh
-a---- 2018/07/01 15:19 327 npm-orig
-a---- 2018/07/01 15:19 204 npm-orig.cmd
-a---- 2016/12/17 6:34 3211264 npm.exe
-a---- 2018/07/01 15:19 327 npx
-a---- 2018/07/01 15:19 204 npx.cmd
-a---- 2018/03/11 10:51 321 vue
-a---- 2018/03/11 10:51 331 vue-init
-a---- 2018/03/11 10:51 208 vue-init.cmd
-a---- 2018/03/11 10:51 331 vue-list
-a---- 2018/03/11 10:51 208 vue-list.cmd
-a---- 2018/03/11 10:51 198 vue.cmd
-a---- 2018/03/11 11:34 379 webpack-dev-server
-a---- 2018/03/11 11:34 256 webpack-dev-server.cmd

PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Users\user\AppData\Roaming\npm\npm.cmd
PS C:\Program Files (x86)\Nodist\bin> move C:\Users\user\AppData\Roaming\npm\npm.cmd C:\Users\user\AppData\Roaming\npm\npm-orig.cmd
PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Users\user\AppData\Roaming\npm\npm
PS C:\Program Files (x86)\Nodist\bin> npm --version
PS C:\Program Files (x86)\Nodist\bin> npm --version
PS C:\Program Files (x86)\Nodist\bin> move C:\Users\user\AppData\Roaming\npm\npm C:\Users\user\AppData\Roaming\npm\npm-orig
PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Program Files (x86)\Nodist\bin\npm.exe
PS C:\Program Files (x86)\Nodist\bin> (Get-Command npm).Definition
C:\Program Files (x86)\Nodist\bin\npm.exe
PS C:\Program Files (x86)\Nodist\bin> npm --version
6.1.0
PS C:\Program Files (x86)\Nodist\bin>


▼感想

本当ならリネームじゃなくて削除での対応をすべきところなんじゃないかなと思いつつ、、