diff --git a/app/electron-builder.json b/app/electron-builder.json index 939cd9a..183a09d 100644 --- a/app/electron-builder.json +++ b/app/electron-builder.json @@ -3,15 +3,18 @@ "appId": "com.bidding.app", "directories": { "output": "dist-electron", - "app": "./app" + "app": "." }, "files": [ + "app/**/*", "dist/**/*", - "frontend/**/*", + "frontend/dist/**/*", ".env", - "node_modules/**/*", - "package.json", - "app/**/*" + "package.json" + ], + "asarUnpack": [ + "dist/**/*", + "node_modules/**/*" ], "win": { "target": "nsis", diff --git a/app/main.js b/app/main.js index 4b6529e..f1b71bb 100644 --- a/app/main.js +++ b/app/main.js @@ -36,6 +36,13 @@ function createWindow() { // 开发环境下打开开发者工具 if (process.env.NODE_ENV === 'development') { mainWindow.webContents.openDevTools(); + + // 过滤掉 DevTools 的 Autofill 相关错误 + mainWindow.webContents.on('console-message', (event, level, message, line, sourceId) => { + if (message.includes('Autofill.enable') || message.includes('Autofill.setAddresses')) { + event.preventDefault(); + } + }); } mainWindow.on('closed', () => { @@ -92,14 +99,25 @@ function waitForBackend(port = 3000, maxRetries = 30, interval = 1000) { * 启动后端服务 */ async function startBackend() { - const backendPath = path.join(__dirname, '..', 'dist', 'main.js'); + let backendPath; + + if (process.resourcesPath) { + // 生产环境:使用 app.asar.unpacked 中的文件 + backendPath = path.join(process.resourcesPath, 'app.asar.unpacked', 'dist', 'main.js'); + } else { + // 开发环境 + backendPath = path.join(__dirname, '..', 'dist', 'main.js'); + } // 检查后端构建文件是否存在 if (!fs.existsSync(backendPath)) { - console.error('后端服务构建文件不存在,请先执行 npm run build'); + console.error('后端服务构建文件不存在,路径:', backendPath); + console.error('请先执行 npm run build'); return; } + console.log('启动后端服务:', backendPath); + // 启动后端服务 backendProcess = spawn('node', [backendPath], { env: { diff --git a/package.json b/package.json index 85e74d3..2c58d34 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "author": "", "private": true, "license": "UNLICENSED", + "main": "app/main.js", "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", @@ -24,7 +25,7 @@ "sync": "ts-node -r tsconfig-paths/register src/scripts/sync.ts", "deploy": "powershell -ExecutionPolicy Bypass -File src/scripts/deploy.ps1", "electron:dev": "npm run -prefix frontend build && npm run build && set NODE_ENV=development&& electron ./app", - "electron:build": "npm run build && electron-builder --config ./app/electron-builder.json" + "electron:build": "npm run -prefix frontend build && npm run build && electron-builder --config ./app/electron-builder.json" }, "dependencies": { "@nestjs/common": "^11.0.1",