【问题标题】:Is it a bad idea to build monorepo Angular9 libraries with Ivy enabled在启用 Ivy 的情况下构建 monorepo Angular9 库是不是一个坏主意
【发布时间】:2020-05-18 23:46:56
【问题描述】:

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

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

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

【问题讨论】:

  • 即使 Angular9 仍然是 RC(上一个版本是昨天才出现的)Ivy 在这一点上非常稳定。在大型项目中,差异(在构建时)是巨大的。因此我会亲自去做。

标签: angular angular-ivy


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-02-03
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多