mat*_*iku 5 webpack laravel-mix workbox workbox-webpack-plugin
我正在使用Workbox 3.0 (webpack-plugin) 和Laravel Mix (5.6) 来自动生成一个 ServiceWorker 文件。
在运行 webpack 编译器时,Workbox 为预缓存资产生成的清单文件如下所示:
self.__precacheManifest = [
{
"revision": "89c25ce71806a695a25e",
"url": "//js/app.js"
},
{
"revision": "89c25ce71806a695a25e",
"url": "//css/app.css"
}
];
Run Code Online (Sandbox Code Playgroud)
显然,URL 字符串是错误的,会导致实际网页出现错误。
这是我的webpack.mix.js :(相关部分)
const {InjectManifest} = require('workbox-webpack-plugin')
mix.webpackConfig({
plugins: [
new InjectManifest({
swSrc: './resources/assets/js/sw.js'
})
]
})
Run Code Online (Sandbox Code Playgroud)
虽然这里使用InjectManifest 进行预缓存以及我自己的动态缓存,但使用GenerateSW插件时也会发生同样的情况。
和我的源代码sw.js:
workbox.precaching.precacheAndRoute(self.__precacheManifest || [])
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?如果我手动修改precacheManifest,它工作正常:
self.__precacheManifest = [
{
"revision": "89c25ce71806a695a25e",
"url": "./js/app.js"
},
{
"revision": "89c25ce71806a695a25e",
"url": "./css/app.css"
}
];
Run Code Online (Sandbox Code Playgroud)
重现此内容的步骤:
Laravel new <proj_name>cd <proj_name>npm installnpm install --save-dev workbox-webpack-pluginconst { GenerateSW } = require('workbox-webpack-plugin');
mix.webpackConfig({ plugins: [new GenerateSW()] });
php artisan make:auth并php artisan migrate完成前端脚手架npm run dev编译后的 precache-manifest 文件如下所示:
self.__precacheManifest = [
{
"revision": "b922e094256b9404e705",
"url": "//js/app.js"
},
{
"revision": "b922e094256b9404e705",
"url": "//css/app.css"
}
];
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案:
由于 Laravel 使用“Laravel Mix” API 来配置和运行 WebPack,因此配置 WebPack 的方式是修改文件webpack.mix.js.
Jeff Posnick 为我指明了正确的方向。如果我webpack.mix.js将以下行添加到 中,编译器会生成一个正确的预缓存清单文件 -
const { GenerateSW } = require('workbox-webpack-plugin');
mix.webpackConfig({
plugins: [new GenerateSW()],
output: {
publicPath: ''
}
});
Run Code Online (Sandbox Code Playgroud)
解决方案是为webpack 的 output.publicPath配置选项提供一个空字符串。
但是,如果您需要为 publicPath 选项提供实际路径,则此解决方法将失败。在此处查看错误报告:https : //github.com/GoogleChrome/workbox/issues/1534
| 归档时间: |
|
| 查看次数: |
2154 次 |
| 最近记录: |