26

最近,每当我运行任何 npm 脚本时,我都会收到以下警告:

npm WARN npm npm does not support Node.js v12.4.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11.
npm WARN npm You can find the latest version at https://nodejs.org/

它说我应该升级到更新版本,但 v12.4最新版本。尽管脚本运行良好,但我认为无法保证,并且随时可能出现问题。

我也尝试过更新npm,以防有更新的版本使用npm install npm -g但出现错误:

npm ERR! path /usr/local/Cellar/node/12.4.0/lib/node_modules/npm
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/Cellar/node/12.4.0/lib/node_modules/npm'
npm ERR!  [Error: EACCES: permission denied, access '/usr/local/Cellar/node/12.4.0/lib/node_modules/npm'] {
npm ERR!   stack: 'Error: EACCES: permission denied, access ' +
npm ERR!     "'/usr/local/Cellar/node/12.4.0/lib/node_modules/npm'",
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/Cellar/node/12.4.0/lib/node_modules/npm'
npm ERR! }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

然后我看到 Homebrew 版本npm不能使用 npm 本身更新,所以我尝试通过Homebrewusing更新,brew upgrade npm但得到了这个错误:

Error: npm 12.4.0 already installed

出于某种原因,Brew 混淆了nodes 和npms 版本。

我做错了什么,我该如何摆脱这个警告?

4

8 回答 8

28

什么对我有用:

如果您尝试运行此命令“npm cache clean -f”但它不起作用,

在您的 Windows 机器上(我的是 Windows 10)访问此位置“~\AppData\Roaming\”中的“npm”和“npm-cache”文件夹

删除这两个文件夹“npm”和“npm-cache”。

转到您的Windows搜索栏并搜索Node,右键单击以打开文件位置,运行卸载程序以卸载NodeJs。

然后访问nodejs.org并再次下载并安装node,如果您已经下载了它,请访问您下载它的文件夹以重新安装它。

安装后,通过在命令终端上键入“npm -v”来检查您的 npm 版本,以查看您机器上安装的新更新版本的 npm。

现在一切就绪,快乐编码。

于 2019-12-31T08:12:18.257 回答
25

好像你搞砸了/usr/local.

以下是解决方法:

  1. 修复/usr/local权限:

    sudo chown -R `id -un`:`id -gn` /usr/local
    
  2. 清理npm缓存并卸载它:

    npm cache clean -f
    npm -g uninstall npm
    
  3. 重新安装node(使用npm

    brew reinstall node
    
  4. 升级npm

    npm -g i npm
    

那应该带来npm@6.9.2

您应该避免在使用或sudo安装软件时使用,这可能会导致此类问题。brewnpm

于 2019-06-28T19:24:41.883 回答
2

如果有nvm,您可能会遇到安装在某个版本的节点版本不匹配的问题。

比如我不小心用了:npm i -g node --force导致我的nvmv12.21.0指向v16.5.0(直接可以下载到当时最新版本的node)。

解决:我跑了:

  1. 只是为了好衡量brew uninstall nvm
  2. brew install nvm.
  3. nvm uninstall 12.21
  4. nvm install 12.21
  5. 只是为了更好的衡量,我运行npm i -g npm导致在npm该虚拟节点上安装了最新版本。
  6. 在一些 repo 中安装后(使用npm i),您可能还想检查您的:~/.npmrc.
email=myemail@company.com
registry=https://artifactory.company.com/npm/npm/
always-auth=true
user-agent=npm/6.14.11 node/v12.21.0 darwin x64
_authToken=siofjwoirgiowrgnioaenrvoianeoiio32noi23nio23nio23nio

它应该看起来像这样:(或者你可能没有这些。

于 2021-07-28T14:06:05.083 回答
1

这里的答案都没有奏效。我不得不删除 npm 和 npm-cache 文件夹,然后重新安装 npm。此处详细信息:npm 不支持 Node.js v12.18.3

于 2021-05-29T03:37:57.993 回答
1

当我尝试安装 npm 和 node.js 时,Debian 10 (buster) 遇到了同样的问题。它们不兼容,不会更新。这就是我发现对我有用的东西。

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

nodejs 包安装在不同的路径,我手动删除了旧包(in /usr/bin/)并添加了一个符号链接以指向新包(in /usr/local/bin)。

sudo rm /usr/bin/node
sudo ln -s /usr/local/node /usr/bin/node

这是运行命令的初始打印输出。npm版本从更新5.8.08.1.2。但是即使在重新启动后nodejs版本仍然保持不变。10.24.0hash -r

bash-ss

于 2022-01-08T15:44:58.667 回答
0

我遇到了这个问题,上面的步骤对我不起作用。我认为如果您尝试升级 Node 或 NPM 而不更新另一个,可能会发生这种情况。至少我认为这就是发生在我身上的事情。

我试图创建一个新的 Angular 项目,但我的机器上有一个非常旧的版本。我在升级 Node 时遇到错误,所以我将它升级到最新版本。之后,我得到了运行任何 npm 命令的错误。

我只是通过访问来解决它: https ://nodejs.org/en/download/

获取最新版本并将其安装在 pkg 文件 (mac) 中。安装完成后,我能够运行所有内容。我猜它起作用了,因为每个版本的版本不匹配,所以如果没有另一个被降级,一个就不会运行。

我也尝试了 brew 选项,但我遇到了其他问题。我的公司机器有时会阻止该路线上的安装,因此它可能对其他人有用。

于 2020-07-27T20:06:34.070 回答
0

在Styx发布的第4步之后,如果 node 声称安装了更新的版本,但 npm -v 一直显示过时的版本

使用brew安装的Mac节点的代码:

cd /usr/local/bin/
mv npm npm-backup
mv npx npx-backup
ln -s /usr/local/Cellar/node/14.2.0/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm 
ln -s /usr/local/Cellar/node/14.2.0/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx 
npm -version
6.14.5
于 2020-05-10T22:30:17.163 回答
-3

看起来是权限问题。用 sudo 试试

于 2019-06-28T10:58:10.913 回答