node.js - 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.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
推荐阅读
- reactjs - 在 onClick NavLink 中使用 React Router 重定向
- jenkins - 可以对机器执行 ping 和 SSH 操作,但由于“主机密钥验证失败”错误,playbook 失败
- reactjs - 无法读取杜比交互 API 客户端 SDK 中未定义的属性“具有”
- c# - 如何在 Asp.Net 核心中将上传文件增加到无限大小
- excel - 如何在 Excel 中将日期格式从“20/May/2020T16:35”更改为“20/5/2020T16:35”
- xml - 复杂对象的 XSD 序列化
- javascript - 为什么 window.innerWidth 大于 window.screen.width
- java - VS Code Java 调试器生成大量未跟踪文件
- openlayers - VectorTileSource 没有以正确的方式从 Geojson 呈现特征
- firebase - snapshot.data.emailVerified 在用户flutter firebase验证电子邮件后不会实时更改屏幕