如何在macOS上更新npm

qacovj5a  于 12个月前  发布在  Mac
关注(0)|答案(9)|浏览(218)

由于我不知道的原因,我无法在macOS上更新到最新版本的npm(它在Windows上运行良好)。* 它没有显示错误,只显示“更新了1个包”。*
使用Node.js 8.11.1

node -v
v8.11.1

字符串
我用的是什么版本的npm?

$ npm -v
5.6.0


我试过这个...

$ npm i -g npm
+ [email protected]
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
+ [email protected]
updated 1 package in 7.618s


如果失败了...

npm -v
5.6.0

  • 使用sudo:*
sudo npm i -g npm
+ [email protected]
updated 1 package in 7.794s


如果失败了...

npm -v
5.6.0

  • 这也失败了 *
sudo npm install npm@latest -g


我遵循directions found on this Q&A,从我的系统中完全删除了npm和node,并从头开始重新安装它们,它也无法更新。
屏幕截图,根据请求:


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

$ npm -v
5.6.0


sudo两次:

$ sudo npm i -g npm
+ [email protected]
updated 1 package in 7.478s
$ sudo npm i -g npm
+ [email protected]
updated 1 package in 7.434s


同样失败:

$ npm -v 
5.6.0


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

0vvn1miw

0vvn1miw1#

它在我的Mac上工作。
基于文档https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm

npm install -g npm@latest

字符串
文档上有一个说明,取决于你的安装方法,你可能会添加一些sudo
在 *nix(OSX、Linux等)上升级
(You可能需要在这些命令前面加上sudo,特别是在Linux或OS X上(如果使用默认安装程序安装Node)。

qgzx9mmu

qgzx9mmu2#

npm install -g npm@latest工作得很好!!你也可以为特定的版本替换最新的,比如npm install -g [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
我希望它会有帮助!

q43xntqr

q43xntqr3#

也许你已经解决了这个问题,但这是我发现的,当我遇到这个问题时,我安装了两个版本的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"

j2qf4p5b

j2qf4p5b4#

在我的情况下,只有以下几点有帮助:

sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf ~/.npm
brew uninstall --ignore-dependencies node
brew install node

字符串

**编辑11月21日:**这些天,我完全绕过brew并使用“n”:

https://www.npmjs.com/package/n
我也可以在不同版本之间切换。

lztngnrs

lztngnrs5#

对我来说,前面的答案都不管用,对我来说,一个有效的解决方案是一个简单的五步过程。
1.确保安装了(旧版本的)npm。
1x个月
如果没有安装npm,请使用Node.js将其安装在Mac上。
1.全局安装所需版本的npm。

npm install -g npm@latest

字符串
此命令使用旧版本的npm(由Node安装),在~/.npm-global/上全局安装最新版本的npm。安装后,关闭并打开新的终端shell。
1.删除Node安装的旧版本npm

rm -r /usr/local/lib/node_modules/npm/


有时这不起作用,所以我不得不进入finder删除/npm/文件夹。
1.确保设置正确的路径变量。

echo $PATH


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

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


保存更改并关闭文本编辑器。
1.关闭并重新打开终端shell,然后运行npm -v来检查最新版本的npm是否正确。
更新path变量的原因是因为npm安装程序建议您使用npm install -g npm更新npm,这将在与Node最初安装npm的位置不同的位置安装npm。

ql3eal8s

ql3eal8s6#

我也遇到了同样的问题。你可能已经安装了npm版本,现在是时候安装新的npm版本了。你可以按照下面的步骤来做。

  1. 1x个月
    1.将"version" : "5.6.0"更改为"verison": "5.8.0"
vngu2lb8

vngu2lb87#

在我的例子中,我使用nvm来管理node的不同版本。为了升级npm版本,我必须
1 -通过导航到当前版本的node安装最新版本的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"

jutyujz0

jutyujz08#

虽然这可能是旧的,但我想做一些更新这个问题以及。
通过brew安装节点
1x个月
安装了最新的npm版本,
npm i -g npm@latest
npm -v显示10.1.0
原因是在.zshrc中,我包含了node@20
export PATH="/usr/local/opt/node@20/bin:$PATH"
改为
export PATH="$PATH:/usr/local/opt/node@20/bin"
原因是安装了两个版本的npm,如果10.1.0覆盖了10.2.4,则$PATH扩展的顺序很重要,反之亦然

k7fdbhmy

k7fdbhmy9#

在我的macOS上,homebrew安装的npm由于预先存在的链接文件而不想升级。我用--force标志运行了安装,现在一切正常。

$ npm --version
6.14.16
$ npm install -g npm@8
npm ERR! EEXIST: file already exists, symlink ...
$ npm install -g --force npm@8
npm WARN using --force I sure hope you know what you are doing.
+ [email protected]
$ npm --version
8.19.2

字符串
还要注意的是,在我的例子中,由于homebrew,不需要'sudo'。要检查你的npm是否安装了homebrew,请使用brew list

$ brew list | grep node
node@12

相关问题