我已经在我的package.json中安装了"@vue/cli-plugin-pwa": "^4.5.12",,还在我的vue.config.js中添加了workbox配置。问题是,当我使用包含我的脚本:vue-cli-service build --mode prod.example的npm run build:prd构建项目时,我的dist文件夹中没有service-worker.js。
这是我的vue.config.js:
module.exports = {
// ...other vue-cli plugin options...
pwa: {
// configure the workbox plugin
workboxPluginMode: 'InjectManifest',
workboxOptions: {
// swSrc is required in InjectManifest mode.
swSrc: 'src/service-worker.js',
// ...other Workbox options...
}
}
}我曾尝试在package.json中移植pwa插件配置,但效果不佳。我只是在dist文件夹中找不到我的service-worker.js。
当前的解决方法是将service-worker.js放在pubic文件夹中。这种方法的问题是,服务工作者不会在每次发布新版本时都进行更新。当前的目的是通知客户端新版本是否可用,但我不能触发update事件,因为service-worker.js是静态的
发布于 2021-09-02 10:48:14
我发现了问题,@vue/cli-plugin-pwa只会在process.env.NODE_ENV === 'production'的情况下生成service-worker。同时,在我的项目中,当我运行npm run build时,NODE_ENV不会自动设置为production,但它仍然是development我不知道是什么导致了这种行为,但是如果我在我的所有.env中添加NODE_ENV=production,这个问题就解决了。这样,每次构建时都会生成precache-manifest....js。
https://stackoverflow.com/questions/68917163
复制相似问题