如何处理 NPM 错误:无法设置 null 的属性(设置 'parent')?

Har*_*til 12 javascript node.js npm

当在具有 NPM 工作区功能的 monorepo 中使用时,会发生此 NPM 错误。我有一个包含 5 个包的 monorepo :abc和。我在不同的存储库中还有一个包,它不是工作区。该包的名称是,它取决于 package和。dexcd

x当我尝试将包添加为我的包的依赖项时,就会出现问题e。每次我尝试: 时npm install x -w packages/e,我都会收到以下错误:

npm ERR! Cannot set properties of null (setting 'parent')

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/harshal/.npm/_logs/2022-11-11T17_27_57_008Z-debug-0.log
Run Code Online (Sandbox Code Playgroud)

错误日志中绝对没有任何内容,除了解决依赖项时错误源自包的事实之外arborist

我尝试过使用多个 NPM 版本^8.x.x,但似乎没有解决问题。

小智 2

问题是循环依赖 - monorepo 依赖于外部包,而外部包又依赖于 monorepo。当尝试解析时,它似乎将 monorepo 包设置为“null”(以便推迟解析而不挂起),然后当它尝试解析该包时,它就会失败。我没有解决办法,试图自己解决这个问题。