const path = require('path') const { defineConfig } = require('@vue/cli-service') const appRoot = path.resolve(__dirname) module.exports = defineConfig({ outputDir: path.join(appRoot, 'dist/renderer'), publicPath: './', configureWebpack: { target: 'electron-renderer', node: { global: false, // 禁用全局 polyfill __dirname: true }, resolve: { fallback: { global: false // 禁用 fallback }, alias: { '@': path.join(appRoot, 'src/renderer'), 'views': path.join(appRoot, 'src/renderer/views') }, extensions: ['.js', '.vue', '.json'] }, externals: { electron: 'require("electron")', fs: 'require("fs")', path: 'require("path")' } }, pages: { index: { entry: path.join(appRoot, 'src/renderer/main.js'), template: path.join(appRoot, 'public/index.html'), filename: 'index.html' } }, pluginOptions: { electronBuilder: { preload: path.join(appRoot, 'src/preload.js'), mainProcessFile: path.join(appRoot, 'src/main/index.js'), builderOptions: { extraResources: [{ from: path.join(appRoot, 'dist/renderer'), to: 'app', filter: ["**/*"] }] } } }, devServer: { hot: false, liveReload: false, allowedHosts: "all", static: { directory: path.join(__dirname, 'dist/renderer'), watch: false }, compress: false, proxy: null }, chainWebpack: config => { // 开发环境 sourcemap config.devtool(process.env.NODE_ENV === 'development' ? 'source-map' : false) // 静态资源处理 config.module .rule('images') .set('generator', { filename: 'img/[name].[hash:8][ext]' }) // 全局变量定义 config.plugin('define').tap(args => { args[0]['global.GLOBAL'] = JSON.stringify(false) return args }) } })