【发布时间】:2020-03-03 17:59:39
【问题描述】:
我的问题是这是否可以强制 webpack-dev-server 更新 service-worker 文件而无需手动重新加载整个服务器?我正在使用带有 injectManifest 选项的 workbox-webpack-plugin。它看起来像这样:
new InjectManifest({
swSrc: './sw-base.js',
swDest: 'sw.js',
}),
这是 sw-base.js
importScripts(
'https://storage.googleapis.com/workbox-cdn/releases/5.0.0/workbox-sw.js',
);
workbox.setConfig({ debug: false });
self.skipWaiting();
workbox.routing.registerRoute(
new RegExp(/\.(png|jpg)/),
new workbox.strategies.StaleWhileRevalidate({
cacheName: 'images',
}),
);
workbox.precaching.precacheAndRoute(self.__WB_MANIFEST);
当我更改 sw-base.js 文件(例如 cacheName)时,我必须重新加载整个 webpack-dev-server 以应用更改。
那么这是否可以让 dev-server 在 sw-base.js 更改时自动重新加载?
提前致谢:3
【问题讨论】:
-
你的意思是你必须停止脚本然后重新启动脚本?还是在浏览器中刷新页面?您总是需要刷新浏览器才能加载新的软件。
-
不,我的朋友,我的意思是我必须重新运行开发服务器(通过命令'webpack-dev-server')。
-
我正在使用 workbox-webpack-plugin。它在 webpack.config 的顶部声明: const { InjectManifest } = require('workbox-webpack-plugin');
标签: javascript webpack service-worker webpack-dev-server workbox