Vue3配置PWA时报错:[WebpackInjectManifest] 'importScripts' property is not expected to be here. Did you mean property 'compileSrc'?
时间: 2024-09-08 14:04:16 浏览: 212
Vue 报错TypeError: this.$set is not a function 的解决方法
当在 Vue3 项目中配置 Progressive Web App (PWA),遇到 `[WebpackInjectManifest] 'importScripts' property is not expected to be here` 错误时,这表示Webpack插件 `webpack-inject-manifest` 在生成Service Worker时,遇到了预期之外的 `importScripts` 配置。`importScripts` 是 Service Worker 初始化时需要加载的脚本列表,但在该插件的配置中可能是误用了 `compileSrc` 属性,或者是插件版本的问题导致的。
首先,确认你的 `manifest.webpack-plugin` 配置是否正确,通常看起来像这样:
```javascript
// vite.config.js 或 main.js 或者 build.config.js
const { createWebpackManifest } = require('webpack-inject-manifest');
module.exports = {
//...
configureWebpack: {
plugins: [
new createWebpackManifest({
inject: true,
filename: 'sw.js', // Service Worker入口文件名
publicPath: process.env.BASE_URL || '/', // 应用的URL前缀
compileSrc: 'src/service-worker.js', // 这里应该是你想注入的SW源文件
}),
],
},
};
```
确保 `compileSrc` 配置指向的是你的 Service Worker 实现文件(如 `service-worker.js`),而不是 `importScripts` 脚本列表。
其次,检查是否有更新到最新版本的 `webpack-inject-manifest`,旧版插件可能对配置有所改变。如果有更新,务必按照新版本的文档操作。
如果问题仍然存在,可以尝试删除 `node_modules` 并重新安装依赖,或者在插件官方论坛或仓库查找类似问题的解决方案。
阅读全文