缺少 'ɵmod' 属性错误

8

我已经卡在这里一天了。

在一个干净的存储库上,进行了pnpm安装后,然后进行了ng serve,在控制台中出现了以下错误

...没有'ɵmod'属性

这可能会发生在任何模块中,并且下面的解决方法适用于任何模块。注意:如果您导入的不是模块,则也可能会发生这种情况-在这种情况下,我的导入没有问题。

解决方法:

  1. 重新启动ng serve运行ng build两次
  2. 参见ngx-leaflet-draw:导入没有ɵmod属性的模块(但我无法让ngcc实际执行任何操作-所以对我没有用-值得指出的是,我的存储库有多个项目)

虽然这些解决方法可能足以满足开发环境的需求,在CI环境中,您必须基本上将ng build两次以解决问题(这是有代价的)。

目前在我的CI构建中的解决方案是构建两次(告诉编译器,如果第一次没做对,再试一次...)

你如何找到这个问题的根本原因?(以便我可以在CI构建中进行单个ng构建步骤)。

这个回答解决了你的问题吗?Angular - Type Pipe does not have 'ɵmod' property - Ken Y-N
很遗憾,这篇文章涉及到“导入除模块以外的其他内容”,正如我所提到的。在他们的情况下,需要进行代码修复。而在我的情况下,不需要进行代码修复,我需要构建两次... - Arnaud
顺便提一下,如果我进行一次生产构建(仅一次),最终会出现“无法读取 null 的属性 'selectors'”错误。(构建两次=无错误) - Arnaud
1个回答

6

我的问题是我一直在使用 pnpm 作为包管理器。不幸的是,pnpm 似乎和 ngcc 不兼容——pnpm 在 node_modules 文件夹中使用硬链接。我已经与 pnpm 提出了问题

事实证明,pnpm 还会引起以下问题(通过再次运行 ng serve 或 build 可以解决):

  • TypeError:无法读取 null 的属性“bindingStartIndex”
  • 构建过程中发生错误:Error:尝试覆盖...__ivy_ngcc_bak 与 ngcc 备份文件,这是不允许的

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接