Angular Travis CI中的缓存角模编译

Angular Travis CI中的缓存角模编译,angular,travis-ci,Angular,Travis Ci,每次我在Travis中运行Angular构建时,它都必须将所有Angular模块编译到ESM5 Compiling @angular/core : module as esm5 Compiling @angular/common : module as esm5 etc. 我想知道是否有一种方法可以使用Travi CI缓存这些已编译的模块。在angular ivy中,我们需要编译库以使它们兼容 这是由ngccutil完成的。 如果angular cli发现未通过ngcc运行的库,它将动态运行

每次我在Travis中运行Angular构建时,它都必须将所有Angular模块编译到ESM5

Compiling @angular/core : module as esm5
Compiling @angular/common : module as esm5
etc.

我想知道是否有一种方法可以使用Travi CI缓存这些已编译的模块。

在angular ivy中,我们需要编译库以使它们兼容

这是由
ngcc
util完成的。 如果angular cli发现未通过ngcc运行的库,它将动态运行

您可以通过运行

ngcc--properties es2015浏览器模块main--first only--create ivy入口点

ngcc的输出存储在
node_modules
中,因此只要缓存
node_modules
并在CI中运行时调用上述命令,就可以了

我建议将其添加为安装后挂钩

package.json
文件中添加

{
  ...
  "scripts": {
    ...
    "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points"
  }
}

谢谢你的回答。我需要对它进行一些调整,即:将
--properties es2015浏览器模块main
替换为
--properties模块
。我个人没有任何使用
ngcc
的经验,因此最终要让它发挥作用主要是靠大量的猜测。当你在travis中运行
npm ci
时,这一点难道还没有得到解决吗?