没有“?mod”属性错误

Arn*_*aud 8 angular-cli angular

我已经被困在这个问题上一天了。

\n

在一个干净的仓库中,执行 pnpm install,然后执行 ng 服务后,最终会在控制台中出现此错误

\n
\n

...没有 \'\xc9\xb5mod\' 属性

\n
\n

任何模块都可能发生这种情况,并且下面的解决方法适用于任何模块。注意:如果您导入了模块以外的其他内容,也可能会发生这种情况 - 在这种情况下,我的导入没有任何问题。

\n

解决方法:

\n
    \n
  1. 重新启动 ngserve运行 ng build 两次
  2. \n
  3. 请参阅ngx-leaflet-draw:导入没有 \xc9\xb5mod 属性的模块(但我无法让 ngcc 实际执行任何操作 - 所以这对我不起作用 - 值得指出的是,我的存储库有多个项目)
  4. \n
\n

虽然这些解决方法对于开发环境来说可能足够了,但在 CI 环境中,您基本上必须进行 ng build 两次才能解决该问题(这是有代价的)。

\n

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

\n

您如何找到此问题的根本原因?(所以我可以在 CI 构建中执行单个 ng 构建步骤)。

\n

Arn*_*aud 6

对我来说问题是我使用pnpm作为包管理器。不幸的是,pnpm 似乎不能很好地与 ngcc 配合 - pnpm 在 node_modules 文件夹中使用硬链接。我向 pnpm提出了问题

事实证明,pnpm 还会导致以下问题(所有问题都可以通过运行 ngserve 或再次构建来修复):

  • 类型错误:无法读取 null 的属性“bindingStartIndex”
  • 构建期间发生错误:错误:尝试使用 ngcc 备份文件覆盖 ... __ivy_ngcc_bak,这是不允许的