我试了一下:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
...但这并没有起作用。
如何在Windows上做到这一点?
我试了一下:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
...但这并没有起作用。
如何在Windows上做到这一点?
当前回答
这对我来说很好
以管理员身份运行命令提示符 导航到包含nodejs的文件夹(例如。C:\Program Files\ nodejs) 执行Powershell -ExecutionPolicy Unrestricted命令 运行npm-windows-upgrade 这将显示可供安装的版本列表。只需通过移动上/下键选择您想要的版本并按Enter。 这会更新你的npm 检查npm的当前版本 运行npm——version
命令提示符截图
其他回答
1. 安装最新的npm版本
npm install –g npm@latest
(你可以输入"npm -version "来检查)
2. 安装节点
a.通过以下路径安装节点新版本:https://nodejs.org/en/download/current/ 遵循默认选项 b.删除C:\Users\\AppData\Roaming\NPM c.删除c:\ users \\AppData\Roaming\npm-cache
(可选):
d.(删除当前项目文件夹中的node_modules文件夹) E. NPM缓存验证 F. NPM安装
我遵循josh3737并从Node.js主页安装了最新的MSI。
但我有一个额外的问题,我仍然在命令行上使用旧版本的Node.js和npm。这个问题是由新安装引起的,而且是安装进去的
C:\Program Files (x86)\nodejs\
而不是以前的安装中
C:\Program Files\nodejs\
新安装在旧目录之后将新目录添加到我的path变量中。所以旧的装置仍然是路径上的活动装置。将C:\Program Files\nodejs\从系统路径中删除,并将c:\ users \…\AppData\Roaming\npm从用户路径重新启动命令行,新的安装是活动的。
可能最小路径是本地问题,与新安装无关。我有两个链接到AppData\Roaming\npm。也许这个问题也可以通过先卸载Node.js然后再安装新版本来解决。
这对我来说很管用。
打开非nodejs所在的本地文件夹。 使用npm Install npm命令将npm安装到该文件夹中 导航到包含节点js的文件夹。(C: \ Program Files \ nodejs \ node_modules) 删除npm文件夹,替换为本地文件夹中的npm和bin文件夹。 运行npm -v。现在你会得到npm的更新版本。
注意:我尝试直接在“C:\Program Files\nodejs\node_modules”中安装npm,但它产生了错误。
注意:这个问题是专门问如何升级npm,而不是Node.js。如果你想在windows下通过命令行更新Node.js,我建议运行winget upgrade -q NodeJS或使用chocolatey。
我应该选择什么方法来更新NPM?
Node.js v16或更高版本? 安装NPM Node.js v14或以下? 考虑更新到Node.js的最新LTS版本 npm-windows-upgrade
使用npm-windows-upgrade进行升级
以管理员身份运行PowerShell
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install -g npm-windows-upgrade
npm-windows-upgrade
注意:如果你运行Node.js安装程序,它会替换Node.js版本。
在Node.js安装npm的地方升级npm。 不修改默认路径。 不更改默认的全局包位置。 允许轻松升级和降级,并安装特定的版本。 NPM和Node.js之间匹配的版本列表(https://nodejs.org/en/download/releases/) -但你需要下载Node.js安装程序并运行它来更新Node.js (https://nodejs.org/en/)
使用npm升级
npm install -g npm
注意:一些用户仍然报告用npm更新npm的问题,但我没有v16+的经验。
前面的答案适用于安装一个新版本的Node.js(可能是最好的选择),但如果你依赖于特定的Node.js版本,那么下面的答案也适用:"npm install npm -g"。在命令前后运行npm -v进行验证。