You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
1.5 KiB

const path = require('path')
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
outputDir: path.resolve(__dirname, 'dist/renderer'),
publicPath: './',
// 关键修改:配置 Electron 构建目标和排除原生模块
configureWebpack: {
target: 'electron-renderer', // 指定为 Electron 渲染进程
externals: {
electron: 'require("electron")', // 防止 Webpack 处理 electron 模块
fs: 'require("fs")', // 排除 Node.js 原生模块
path: 'require("path")',
},
resolve: {
alias: {
'@': path.resolve(__dirname, 'src/renderer'),
// 确保 Vue 单文件组件引用时自动补全扩展名
'views': path.resolve(__dirname, 'src/renderer/views')
},
// 添加扩展名自动解析
extensions: ['.js', '.vue', '.json']
}
},
// 保留原有页面配置
pages: {
index: {
entry: 'src/renderer/main.js',
template: 'public/index.html',
filename: 'index.html'
}
},
// 保留 Electron Builder 配置
pluginOptions: {
electronBuilder: {
preload: 'src/preload.js',
nodeIntegration: false,
contextIsolation: true,
// 可选:明确指定主进程文件路径
mainProcessFile: 'src/main/index.js'
}
},
// 开发服务器配置(与 Electron 主进程配合)
devServer: {
port: 8080, // 确保与 wait-on 端口一致
hot: true,
headers: {
'Access-Control-Allow-Origin': '*'
}
}
})