Я пишу приложение PWA. Я использовал Service Worker по умолчанию из шаблона, который я использую (шаблон Vue.js PWA), но теперь я решил написать свой с нуля. Я поместил его (service-worker.js
) в папку static
, потому что я хочу иметь статическое имя для него - я не хочу менять имя каждый раз (сборка).
В этом конкретном сервисном работнике я хочу использовать пакеты name
и version
, чтобы можно было сгенерировать идентификатор кэша.
Итак, я хочу достичь чего-то вроде этого:
/ package.json :.
{
"name": "my.app",
"version": "1.0.0",
...
}
/ статический / сервис-worker.js .:
var CACHE_ID = 'PACKAGE_NAME-vPACKAGE_VERSION';
...
.
/ строительство / сервис-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
.
Буду признателен за помощь и / или руководство, как решить эту проблему.