1

默认情况下,在创建 Angular9(当前为 RC)库时,该库是在生产模式下禁用 Ivy 的情况下构建的。这是有道理的,因为(还)不支持发布为 Ivy 编译的库。

然而,就我而言,我有一个 monorepo 项目,我们使用库来组织我们的代码。这些库永远不会推送到 NPM,仅用于在多步骤构建过程中构建主应用程序。在禁用 Ivy 的情况下构建库意味着主应用程序构建首先必须遍历所有这些库并调用 NGCC 来生成代码的 Ivy 版本,这看起来非常低效而且很奇怪。

问题是:只为这些库的生产版本启用 Ivy 是不是一个坏主意?如果是这样,为什么?可能会出现哪些潜在问题?

4

1 回答 1

0

Google 不推荐发布 Ivy 库的原因是开发人员仍然可以选择退出 Ivy。一旦他们最终确定并将每个人转移到 angular 10 中的新构建系统,那么他们可能会重新审视他们在已发布库中对 Ivy 的支持。

我会说,如果您在整个项目中使用 Ivy 并且没有将它们提供给将关闭 Ivy 的人,那么将库设置为 Ivy。就像你说的那样,它有点低效,因为它必须将库转换为 Ivy。谷歌不建议发布。并不是说他们不推荐使用 Ivy 库。

我使用https://indepth.dev/the-angular-ivy-guide-for-library-authors/来推动我的回答。我需要了解为什么Google 建议不要发布 Ivy 库。

于 2020-02-11T20:25:36.937 回答