如何在macOS

时间:2018-04-04 22:41:14

标签: 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
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和节点,并从头开始重新安装它们,它也无法更新。

屏幕截图,每个请求:

enter image description here

关闭终端,然后重新打开终端并运行:

$ 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

我错过了什么?这是怎么回事?

7 个答案:

答案 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版本安装了。您可以按照以下步骤进行操作。

  1. sudo nano /usr/local/lib/node_modules/npm/package.json
  2. "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)

就我而言,以前的答案都无效。对我来说,有效的解决方案是一个简单的五步过程。

  1. 确保已安装npm(旧版本)。

npm -v

如果未安装npm,则使用Node.js将其安装在Mac上。

  1. 全局安装了所需的npm版本。
npm install -g npm@latest

此命令使用npm的旧版本(由Node安装)在~/.npm-global/处全局安装npm的最新版本。安装完成后,关闭并打开新的终端外壳。

  1. 删除由Node安装的npm的旧版本
rm -r /usr/local/lib/node_modules/npm/

有时候这是行不通的,所以我不得不进入finder来删除/npm/文件夹。

  1. 请确保设置正确的路径变量。
echo $PATH

如果~/.npm-global/bin在冒号之间没有出现,请更新path变量。在文本编辑器中打开~/.zshrc,然后添加以下行。如果您不使用zsh,请打开相应外壳程序的配置文件(即~/.bash_profile

export PATH=$PATH:$HOME/.npm-global/bin

保存您的更改并关闭文本编辑器。

  1. 关闭并重新打开终端外壳,然后运行npm -v以检查npm在最新版本上是否正确。

更新路径变量的原因是因为npm cli建议您使用npm install -g npm更新npm,这将把npm安装在与Node最初安装npm不同的位置。