// Electron 应用配置 const path = require('path') const fs = require('fs') // 根目录 = config 文件所在目录的上级(本文件在 <根>/configs/config.js,故 projectRoot = path.dirname(__dirname)) const projectRoot = (typeof __dirname !== 'undefined' && __dirname.includes('app.asar')) ? path.dirname(process.execPath) : path.resolve(__dirname, '..') // 根据 process.arch 判断架构(arm64 / x64) const isArm64 = process.arch === 'arm64' const arch = isArm64 ? 'arm64' : 'x64' // Node.js:优先 nodejs/{arch}/node,不存在则回退到 nodejs/node(兼容当前结构) const nodeDirArch = path.join(projectRoot, 'nodejs', arch, 'node') const nodeDirLegacy = path.join(projectRoot, 'nodejs', 'node') const nodeDir = fs.existsSync(nodeDirArch) ? nodeDirArch : nodeDirLegacy // Python:python/{arch} const pythonDir = path.join(projectRoot, 'python', arch) // 虚拟环境:python/{arch}/env const pythonVenvPath = path.join(pythonDir, 'env') const isWin = process.platform === 'win32' module.exports = { // 当前架构 arch, // 项目根目录:开发时为仓库根,打包后由 package/x64/config.js 提供(exe 同目录) projectRoot, // 窗口配置 window: { width: 800, height: 600, autoHideMenuBar: true, // 隐藏菜单栏(File、Edit、View、Window、Help) }, // 开发工具配置 devTools: { enabled: false, // 是否显示调试侧边栏(DevTools) }, // Vite 开发服务器配置 vite: { port: 9527, // Vite 开发服务器端口(如果被占用会自动尝试下一个端口) host: 'localhost' // 服务器主机地址 }, // Python 路径(按架构:python/x64 或 python/arm64) pythonPath: { path: pythonDir }, pythonDir, pythonVenvPath, // ADB 路径配置(相对于项目根目录) adbPath: { path: path.join(projectRoot, 'lib/scrcpy-adb/adb.exe') }, // Node.js 路径(按架构:nodejs/x64/node 或 nodejs/arm64/node,不存在时用 nodejs/node) nodejsPath: path.join(nodeDir, isWin ? 'node.exe' : 'node'), // Node.js 目录及 npm 路径(供 install / env 脚本读取) nodeDir, npmCmdPath: path.join(nodeDir, isWin ? 'npm.cmd' : 'npm'), npmCliPath: path.join(nodeDir, 'node_modules', 'npm', 'bin', 'npm-cli.js') }