-1

我们的构建生成 e2015 和 es5 包 - 例如,在 dist 目录中,我们将拥有如下文件:

/common-es2015.7765e11579e6bbced8e8.js
/common-es5.7765e11579e6bbced8e8.js
/custom.js

我们想要配置 ngsw-config.json 来预提取所有 js 文件,除了es5名称中的 with 。

到目前为止我们尝试过的 glob 模式不起作用 - 但是当我们使用这个在线测试器时它们会起作用

示例:模式:/!(*es5)*.js

测试字符串:

/common-es2015.7765e11579e6bbced8e8.js
/common-es5.7765e11579e6bbced8e8.js
/custom.js
/favicon.ico 

正确选择common-es2015*custom.js

但是当我们在其中使用相同的模式时ngsw-config.json它不起作用 - 例如

{
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": ["/favicon.ico", "/index.html", "/*.css", "/!(*es5)*.js"]
      }
    },

根据角度文档,应该支持负球。

这种模式有什么问题?

4

1 回答 1

0

我在这里找到了一个很好的解决方案

这个想法是首先包含所有 js 文件,然后排除 es5 文件:

{
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": ["/favicon.ico", "/index.html", "/*.css", "/*.js", "!/*-es5*.js"]
      }
    }
}

然后我们可以为 es5 文件创建另一个惰性资产组:

{
  "name": "assets",
  "installMode": "lazy",
  "resources": {
    "files": ["..", "/*-es5*.js"]
  }
}
于 2020-05-24T15:28:37.293 回答