用一個命令便可以更新npm自身來更新nvm環境,
通过一条命令将npm自身更新至最新版本的方法
由于在nvm环境下无法成功进行npm本身的更新,我将公开一个一键成功的命令方法。
做法 (yà fă)
以下是只需要从bash命令行执行的简单工作。
使用了Here文档,所以请将”cat”命令从EOF下面一直复制到最后。(对于Mac用户,无法获取”$PROGRAMFILES”环境变量,所以需要进行修改)
2020年4月25日 – 追加
请确保在空的全局安装状态下执行。
确认方法:$ npm ls -depth 0
$ cat <<EOF > npm_update.sh && chmod +x npm_update.sh && ./npm_update.sh && rm -rf ./npm_update.sh
#!/usr/bin/bash
cd "$PROGRAMFILES"/nodejs
rm npm npx npm.cmd npx.cmd
mv node_modules/npm node_modules/npm2
node node_modules/npm2/bin/npm-cli.js i -g npm@latest
rm -rf node_modules/npm2/
EOF
正在做的事情 zuò de
生成可执行文件
↓
授予执行权限
↓
执行npm更新
↓
删除并结束。
到达上述地点之前的失败
失败1:我尝试执行了「npm install -g npm」。
首先尝试按照常规方法执行”$ npm install -g npm”命令时出现以下错误。
C:\WINDOWS\system32>npm install -g npm
npm ERR! code EEXIST
npm ERR! path C:\Program Files\nodejs\npm.cmd
npm ERR! Refusing to delete C:\Program Files\nodejs\npm.cmd: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npm.cmd
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\inukujira\AppData\Roaming\npm-cache\_logs\2020-02-15T00_43_01_988Z-debug.log
第二次失敗:嘗試執行「npm-windows-upgrade」
我发现了一个使用「npm-windows-upgrade」模块的解决方法,所以尝试安装并运行了一下。
但是没有成功…。
C:\WINDOWS\system32>npm-windows-upgrade
npm-windows-upgrade v6.0.1
? Which version do you want to install? 6.13.7
Checked system for npm installation:
According to PowerShell: C:\Program Files\nodejs
According to npm: C:\Program Files\nodejs
Decided that npm is installed in C:\Program Files\nodejs
Upgrading npm... -
Upgrading npm (fallback method)... \
You wanted to install npm 6.13.7, but the installed version is 6.13.4.
A common reason is an attempted "npm install npm" or "npm upgrade npm". As of today, the only solution is to completely uninstall and then reinstall Node.js. For a small tutorial, please see https://github.com/felixrieseberg/npm-windows-upgrade#usage.
Please consider reporting your trouble to https://aka.ms/npm-issues.
Debug Information:
node: 12.16.0 | v8: 7.8.279.23-node.31 | uv: 1.34.0 | zlib: 1.2.11 | brotli: 1.0.7 | ares: 1.15.0 | modules: 72 | nghttp2: 1.40.0 | napi: 5 | llhttp: 2.0.4 | http_parser: 2.9.3 | openssl: 1.1.1d | cldr: 35.1 | icu: 64.2 | tz: 2019c | unicode: 12.1 | os: win32 x64