Я пишу приложение PWA. Я использовал Service Worker по умолчанию из шаблона, который я использую (шаблон Vue.js PWA), но теперь я решил написать свой собственный с нуля. Я поместил его (service-worker.js
) в папку static
, потому что я хочу иметь для него статическое имя - я не хочу менять имя каждый раз (сборка).
В этом конкретном Service Worker я хочу использовать пакеты name
и version
, чтобы я мог красиво сгенерировать идентификатор кеша.
Итак, я хочу добиться чего-то вроде этого:
./package.json:
{
"name": "my.app",
"version": "1.0.0",
...
}
./static/service-worker.js:
var CACHE_ID = 'PACKAGE_NAME-vPACKAGE_VERSION';
...
./build/service-worker.js:
var CACHE_ID = 'my.app-v1.0.0';
./build/service-worker.js
показывает, чего я хочу достичь.
Я пробовал https://www.npmjs.com/package/string-replace-loader с конфигурацией ниже:
{
test: /service-worker\.js$/,
loader: 'string-replace-loader',
options: {
multiple: [
{
search: 'PACKAGE_NAME',
replace: packageConfig.name
},
{
search: 'PACKAGE_VERSION',
replace: packageConfig.version
}
]
}
}
Но, насколько я понимаю, файлы, помещенные в static
, не являются модулями (я прав?), Поэтому они не проверяются module.rules
.
Я был бы очень признателен за помощь и / или советы, как я могу решить эту проблему.