Как использовать отрицательный паттерн глобуса?
Наша сборка генерирует пакеты 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"]
}
}