TL;DR
# 以管理员身份运行
npm i -g npm-windows-upgrade
npm-windows-upgrade
# 然后选择最新版本
起因
最近执行 npm -v
时,npm 报了如下警告:
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
问题是在 Windows 平台出现的,查了下貌似是 npm.cmd
里用了弃用的选项 -g
,导致出现了这个警告。
解决
最新的 npm 应该已经修复了这个问题,但我在使用 npm i -g npm
安装最新版本后还是报这个警告,于是使用 npm-windows-upgrade
这个包来更新 npm。另外,既然是 npm.cmd
使用了废弃的选项,那就直接修改 npm.cmd
,把这个选项替换掉。
方式一:使用 npm-windows-upgrade
首先,要确保可以通过从 PowerShell 执行 npm 脚本。以管理员身份打开 PowerShell,运行以下命令:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
然后执行
npm install --global --production npm-windows-upgrade
npm-windows-upgrade
选择最新版本
方式二:修改 npm.cmd
- 进入到 nodejs 安装目录
- 替换
npm.cmd
第 12 行的prefix -g
为prefix --location=global
同样修改其他几个文件:
npm
,npx
,npx.cmd
保存(以管理员身份)
Reference
fin.