这也许更像是一个澄清的问题:
根据常春藤的文档(从角9开始),我们需要在我们的postinstall中添加一个package.json脚本,如下所示:
"postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points"
但是,由于我们正在努力改进构建时间(从常春藤开始,这需要很长时间),我看到了一篇关于entwickler.de的文章(不幸的是德语中的文章),提到,从角9.1开始,我们就不再需要这个postinstall脚本了。
但是,我在官方文件中找不到省略这个postinstall脚本的任何东西.
这会不会是一种可能加快构建时间的方法?
发布于 2020-07-23 14:10:16
postinstall只在运行npm install之后才运行,因此删除它不会加快构建时间(除了每次运行npm install的构建管道之外)。
根据角术语表,ngcc所做的是:
角度兼容性编译器如果您使用Ivy构建应用程序,但它依赖于未使用Ivy编译的库,则CLI使用ngcc自动更新依赖库以使用Ivy。
因此,您仍然应该将其保留为postinstall脚本。不过,我不确定的是--create-ivy-entry-points标志,因为根据角质文档
不要使用--创建-常春藤-入口点,因为这将导致Node无法正确解析Ivy版本的包。
但这句话也属于“角壳”和“环球”的标题。当我升级到角10时,它没有移除旗子,所以我倾向于认为它仍然是需要的。
发布于 2020-10-19 20:42:51
我觉得这已经不需要了。
在版本9中,用于App和Angular的服务器生成器默认启用了bundleDependencies选项。如果您选择退出捆绑依赖项,则需要运行独立的角度兼容性编译器(ngcc)。这是必需的,因为否则Node将无法解决软件包的常春藤版本。
我认为这只是为了SSR的构建。现在只有ngcc
{
"scripts": {
"postinstall": "ngcc"
}
}https://stackoverflow.com/questions/63055924
复制相似问题