Как использовать отрицательный паттерн глобуса?

Наша сборка генерирует пакеты e2015 и es5 - например, в каталоге dist у нас будут такие файлы:

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

Мы хотим настроить ngsw-config.json для предварительной обработки всех файлов js, кроме es5 во имя.

Шаблоны глобусов, которые мы пробовали до сих пор, не работают, но они работают, когда мы используем этот онлайн-тестер.

Пример: узор:/!(*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"]
      }
    },

Согласно angular docs отрицательные глобусы должны поддерживаться.

Что не так с этим шаблоном?

1 ответ

Я нашел хорошее решение здесь

идея состоит в том, чтобы сначала включить все файлы 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"]
  }
}
Другие вопросы по тегам