我正在尝试将workbox和GenerateSW插件用于webpack。
我安装了workbox-webpack-plugin
我修改了webpack.config.js以添加插件:
plugins: [
// other webpack plugins
new GenerateSW()
]
我添加了以下代码:
platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
if( !('serviceWorker' in navigator) ){
console.warn('Too bad, Service worker is not supported in current browser')
return
}
window.navigator.serviceWorker
.register(`/service-worker.js`, { scope: '/' })
.then(registration => console.log(`Service worker registration succeeded`))
.catch(error => console.log(`Service worker registration failed`))
})
这对我的本地开发有用!
然后我尝试了以下选项:importWorkboxFrom:'local'
new GenerateSW({
importWorkboxFrom: 'local',
}),
并且失败并显示错误:TypeError: Failed to register a ServiceWorker: ServiceWorker script evaluation failed
当我检查源文件service-worker.js
时,我发现上存在错误:
importScripts("workbox-v3.4.1/workbox-sw.js");
我怀疑该文件夹未复制!
如果我为PROD而不是本地开发人员构建应用程序,则可以看到正在复制的文件夹,所以我有点困惑吗?
有什么想法吗?