在 Travis-CI 中缓存 Angular 模块编译

Cache Angular module compilation in Travis-CI

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

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

我想知道是否有一种方法可以使用 Travi-CI 的 cache.

来缓存这些已编译的模块

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

这是由 ngcc 实用程序完成的。 如果 angular-cli 找到尚未通过 ngcc 运行 的库,它将即时执行。

你可以通过 运行ning

告诉 ngcc 这样做

ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points

ngcc 的输出存储在 node_modules 中,因此只要您缓存 node_modules 并在 CI 中 运行ning 时调用上面的内容就可以了。

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

在您的 package.json 文件中添加

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