gpt4 book ai didi

javascript - 在项目中添加 angular postinstall "ngcc..."脚本的原因是什么?

转载 作者:行者123 更新时间:2023-12-01 15:42:03 29 4
gpt4 key购买 nike

如果以下问题对您来说很幼稚,请原谅:
我经历了由 angular 9 开发的多个项目,其中大多数在 package.json 中有以下行作为 posinstall 脚本。"postinstall": "ngcc --properties es2015 es5 browser module main --first-only --create-ivy-entry-points"我阅读了 Angular 文档,根据我的理解,我们添加了“ngcc”来验证安装的包是否与 Ivy 兼容。
同样根据他们的建议,我们不应使用“--create-ivy-entry-points”标志,因为这将导致 Node 无法正确解析 Ivy 版本的软件包。
问题:有人可以解释添加其他标志和属性的原因,例如:“--properties es2015 es5 browser module main --first-only --create-ivy-entry-points”在安装后脚本中的 ngcc 之后。
提前致谢!

最佳答案

实际上,ngcc 的工作不是包验证。它采用非 Ivy 库并生成 Ivy 可以理解的文件。我相信 ngtsc 生成的 Ivy 指令(除了与 ngc 生成的代码不向后兼容之外)还不稳定,所以现在的规则是继续使用 View Engine - ngc for library。这就是 ngcc 如何适应图片,使用 View Engine 代码处理库。
关于问题,ngcc's source有他们每个人的文档:

  • 如果没有 properties给出标志后,ngcc 将处理所有包格式(fesm2015、fesm5、es2015、esm2015、esm5、main、模块),这可能不是我们想要的。
  • 旗帜first-only告诉 ngcc 处理它在 package.json 中找到的第一个属性,否则它将处理上面列出的所有条目。
  • create-ivy-entry-points将告诉 ngcc 为 Ivy 生成的条目创建新属性,而不是覆盖前一个。

  • 我认为有些人使用 postinstall 来优化流程。我实际上是将它添加到我工作的 Angular 应用程序中,以便在我们的 CI 管道中缓存 Ivy-ready node_modules。

    关于javascript - 在项目中添加 angular postinstall "ngcc..."脚本的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62636918/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com