由于我不知道的原因,我无法在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
updated 1 package in 7.37s
它无法更新。
$ 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
updated 1 package in 7.618s
它失败了......
npm -v
5.6.0
使用sudo
:
sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.794s
它失败了......
npm -v
5.6.0
这也失败了......
sudo npm install npm@latest -g
我跟着directions found on this Q&A,从我的系统中完全删除了npm和节点,并从头开始重新安装它们,它也无法更新。
屏幕截图,每个请求:
关闭终端,然后重新打开终端并运行:
$ npm -v
5.6.0
sudo
两次:
$ sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.478s
$ sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.434s
也失败了:
$ npm -v
5.6.0
我错过了什么?这是怎么回事?
答案 0 :(得分:31)
这适用于我的Mac。
基于文档https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm:
npm install -g npm@latest
文档中有一条说明取决于您的安装方法,您可能会添加一些sudo
。
升级* nix(OSX,Linux等)
(您可能需要在sudo前加上这些命令,特别是在Linux上, 如果使用默认安装程序安装了Node,则为OS X.)
答案 1 :(得分:14)
也许您已经解决了这个问题,但这正是我遇到这个问题时所发现的。我安装了2个版本的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",
我通过更新bash配置文件中的路径来解决该问题,但想知道为什么(如何)最终获得2个版本。这是更新:
tail -2 ~/.bash_profile
NPM_PACKAGES="${HOME}/.npm-packages"
PATH="$NPM_PACKAGES/bin:$PATH"
答案 2 :(得分:3)
我遇到了同样的问题。 您可能已经安装了npm版本,现在该指向新的npm版本安装了。您可以按照以下步骤进行操作。
sudo nano /usr/local/lib/node_modules/npm/package.json
"version" : "5.6.0"
更改为"verison": "5.8.0"
答案 3 :(得分:3)
就我而言,我正在使用nvm
来管理node
的不同版本。为了升级npm版本,我必须
1-通过导航到当前版本来安装最新版本的npm 节点版本
cd ~/.nvm/versions/node/v10.9.0
npm install npm
或者您可以使用
nvm install-latest-npm
2-编辑$PATH
以指向您当前的node
版本
NPM_PACKAGES="${HOME}/.nvm/versions/node/v10.9.0"
PATH="$NPM_PACKAGES/bin:$PATH"
答案 4 :(得分:2)
就我而言,只有以下几个方面有所帮助:
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf ~/.npm
brew uninstall --ignore-dependencies node
brew install node
答案 5 :(得分:1)
npm install -g npm@latest
工作良好!!
您还可以替换特定版本的最新版本
喜欢
npm install -g npm@5.6.0
我希望这会有所帮助!
答案 6 :(得分:0)
就我而言,以前的答案都无效。对我来说,有效的解决方案是一个简单的五步过程。
npm -v
如果未安装npm,则使用Node.js将其安装在Mac上。
npm install -g npm@latest
此命令使用npm的旧版本(由Node安装)在~/.npm-global/
处全局安装npm的最新版本。安装完成后,关闭并打开新的终端外壳。
rm -r /usr/local/lib/node_modules/npm/
有时候这是行不通的,所以我不得不进入finder来删除/npm/
文件夹。
echo $PATH
如果~/.npm-global/bin
在冒号之间没有出现,请更新path变量。在文本编辑器中打开~/.zshrc
,然后添加以下行。如果您不使用zsh,请打开相应外壳程序的配置文件(即~/.bash_profile
)
export PATH=$PATH:$HOME/.npm-global/bin
保存您的更改并关闭文本编辑器。
npm -v
以检查npm在最新版本上是否正确。更新路径变量的原因是因为npm cli建议您使用npm install -g npm
更新npm,这将把npm安装在与Node最初安装npm不同的位置。