【问题标题】:StackBlitz ngcc failed to run on my npm library with Ivy enabledStackBlitz ngcc 在启用 Ivy 的情况下无法在我的 npm 库上运行
【发布时间】:2020-12-02 19:40:21
【问题描述】:

我已经向 npm 发布了一个 Angular 10 库,它在启用了 Ivy 的本地 Angular 10 项目中运行良好,但如果我尝试在 StackBlitz 上使用它,我必须禁用 Ivy。

https://stackblitz.com/edit/angular-ivy-tapxx5?file=tsconfig.json

但使用常春藤禁用

https://stackblitz.com/edit/angular-ivy-vbpzem?file=tsconfig.json

不知道为什么我必须为 StackBlitz 关闭 Ivy,但我可以在本地 CLI Ivy 项目中正常使用它。

【问题讨论】:

  • 面临与我们所说的相同的问题。给你一个线索:我的库(lib1)依赖于我的另一个库(lib2),它依赖于 lodash。 StackBlitz 对于 lib1 和 lib2 都失败了。我删除了对 lodash 的依赖并创建了自己的简化函数。现在 lib2 可以工作,但 StackBlitz 仍然抱怨 lib1。请在此处发布更新。 ??????

标签: angular angular-library stackblitz


【解决方案1】:

这显然是最近反复出现的问题,filed on their GitHub repo。 类似的案例正在增加,在 Ivy 的情况下工作。

我认为可以安全地假设问题出在他们的一方,只要包在常规环境中运行良好。

https://github.com/stackblitz/core/issues/1364

编辑Ahmed pointed out,由 StackBlitz 团队在 Twitter 上确认

【讨论】:

  • 这是来自他们的this tweet,他们在这里承认了这一点,实际上建议了您关闭 Ivy 的解决方案
  • @AhmedMohamedeen 问题表明它可以在常春藤关闭的情况下使用。但是,如果导入它会使 StackBlitz 崩溃,它会使我的库看起来很糟糕。
  • @AdrianBrand 我认为西蒙已经回答了你原来的问题。请考虑验证它
【解决方案2】:

我可以通过转到左侧面板上的设置并禁用 Enable Ivy 然后在浏览器上进行硬刷新来实现此功能。

【讨论】:

  • 但这对于想要在 StackBlitz 中使用我的库的人来说是没有帮助的,我觉得当它不能与 Ivy 一起使用时,它会让库看起来很糟糕。
  • 是的,但 StackBlitz 不是用来构建应用程序的,它是用来快速测试和共享代码的。然后,您很可能会将该代码放入一个真实的存储库中,然后从那里构建并将其发送到您的真实环境。在这些构建过程中,可以打开 Evy。
猜你喜欢
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 2018-02-22
  • 2021-06-29
  • 2020-03-25
  • 1970-01-01
相关资源
最近更新 更多