首页 > 解决方案 > npm 在 Mac Big Sur 上出现错误,无法安装或运行

问题描述

我刚刚使用以下命令安装了节点,这是输出

$ brew 安装节点

$节点-v

v9.4.0

$ 命令 -v 节点

/usr/local/bin/node

$ ls -l /usr/local/bin/node

-rwxr-xr-x  1 icyborg  wheel  35697312 Jan 14  2018 /usr/local/bin/node

跑完之后

$ brew 升级节点

警告:节点 15.9.0 已安装

但是当我这样做时

$节点-v v9.4.0

现在当我想做的时候

npm -v

它给出了这个错误,

TypeError: Cannot destructure property `stat` of 'undefined' or 'null'.
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/node-gyp/lib/index.js:2:29)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script-pkg.js:4:55)
    at Module._compile (module.js:660:30)
/usr/local/lib/node_modules/npm/node_modules/@npmcli/config/lib/index.js:163
      throw new Error('call config.load() before reading values')
      ^

很难理解这个错误。我可以知道可能是什么问题吗?我以为 npm 带有 node,我找不到任何方法在 mac 上独立安装它。

解决方案-似乎节点不是LinkedIn。我跑了

brew link --overwrite node 

它现在正在工作

标签: node.jsnpm

解决方案


Node.js 9 已经不受支持大约 3 年了。您看到的错误很可能是由于使用旧的 Node.js 和新的 npm。

当我运行时brew info node,它说 15.2.0 可用。因此,要么您的brew安装出现问题,要么您在路径中的其他位置(或作为别名)有一个旧版本的 Node.js,而不是由brew.

运行command -v node以找出正在执行的 Node.js。如果它不以 开头/usr/local/bin/node,那是你的问题。如果是/usr/local/bin/node,请运行ls -l /usr/local/bin/node以确保它是指向/usr/local/Cellar/node. 如果不是,那是你的问题......(编辑#2:......正如评论中的OP注释brew link --overwrite node,为他们修复了这个问题。所以任何其他阅读本文的人都可以尝试。)

编辑#1:由于您已使用上述信息更新了问题:看起来您可能在 3 年前使用常规安装程序安装了 Node.js 9,而不是brew. 同样,您可以通过使用 brew 卸载并重新安装来避免所有这些麻烦,nvm如下一段所述。

一般来说,如果您在个人计算机上而不是在服务器上安装 Node.js,我建议您卸载该brew版本并使用每用户版本管理器进行安装。 nvm是一个不错的选择:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

推荐阅读