如何在macOS上更新npm
如何在macOS上更新npm
由于我不清楚原因,我无法在macOS上更新到最新版本的npm(在Windows上可以正常工作)。它没有显示任何错误,只显示“已更新1个软件包”。
使用的是Node.js 8.11.1
node -v v8.11.1
我有哪个版本的npm?
$ npm -v 5.6.0
我尝试了这个...
$ npm i -g npm + npm@5.8.0 在7.37秒内更新了1个软件包
但是更新失败了。
$ npm -v 5.6.0
npm在哪里?
$ which npm /usr/local/bin/npm
所以我尝试了brew
...
brew install npm
但是安装也失败了...
$ npm -v 5.6.0
*然后我尝试了这个... *
npm install npm@latest -g + npm@5.8.0 在7.618秒内更新了1个软件包
但是更新还是失败了...
npm -v 5.6.0
使用 sudo
:
sudo npm i -g npm + npm@5.8.0 在7.794秒内更新了1个软件包
但是更新还是失败了...
npm -v 5.6.0
这个也失败了...
sudo npm install npm@latest -g
我按照这个问答中的指示,完全从系统中删除了npm和node,并从头重新安装它们,但更新还是失败了。
根据要求,附上屏幕截图:
关闭终端,然后重新打开终端并运行:
$ npm -v 5.6.0
使用sudo
两次:
$ sudo npm i -g npm + npm@5.8.0 在7.478秒内更新了1个软件包 $ sudo npm i -g npm + npm@5.8.0 在7.434秒内更新了1个软件包
但是更新还是失败了:
$ npm -v 5.6.0
我错过了什么?这里发生了什么?
问题出现的原因是用户在macOS上安装了两个版本的npm,并且路径设置错误导致系统使用了错误的版本。解决方法是更新bash配置文件中的路径设置,将错误的路径删除,并将npm管理路径设置为正确的路径。
具体解决方法如下:
1. 首先,通过以下命令验证已安装的npm版本:
grep "version" ~/.npm-packages/lib/node_modules/npm/package.json "version": "6.2.0" grep "version" /usr/local/lib/node_modules/npm/package.json "version": "5.6.0",
2. 然后,通过以下命令更新bash配置文件中的路径设置,将错误的路径删除,并将npm管理路径设置为正确的路径:
tail -2 ~/.bash_profile NPM_PACKAGES="${HOME}/.npm-packages" PATH="$NPM_PACKAGES/bin:$PATH"
3. 确保在路径设置的末尾添加":$PATH",以确保系统使用正确的版本。如果路径设置在开头,则可能导致系统使用错误的版本。
4. 最后,重新安装npm,可以从nodejs.org的软件包安装程序进行自定义安装,只安装npm。
通过以上步骤,用户可以解决在macOS上更新npm的问题,并确保系统使用正确的npm版本进行管理。
问题的原因:根据文档https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm,需要使用npm install -g npm
命令来更新npm。
解决方法:根据文档的说明,根据你的安装方式不同,可能需要在命令前添加sudo
。例如,在*nix(OSX,Linux等)系统上,特别是在使用默认安装程序安装Node的OS X系统上,可能需要使用sudo
。另外,npm install -g npm
命令中的-g
是全局安装标志。
需要注意的是,不应该使用sudo
来安装npm,否则可能会在以后的某个地方引起更多的权限问题。安装npm的方法有很多种,其中一种是使用brew,但还有很多其他方法可以通过谷歌搜索找到。
即使我使用brew安装了node,也不能通过brew更新npm,只能使用sudo命令。