config.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Electron 应用配置
  2. const path = require('path')
  3. // 根目录 = 本文件所在目录(开发时在仓库根;打包后在 exe 同目录,且 __dirname 含 app.asar 时用 exe 目录)
  4. const projectRoot = (typeof __dirname !== 'undefined' && __dirname.includes('app.asar'))
  5. ? path.dirname(process.execPath)
  6. : __dirname
  7. // Node.js:便携版固定 nodejs/node
  8. const nodeDir = path.join(projectRoot, 'nodejs', 'node')
  9. const isWin = process.platform === 'win32'
  10. // Python:嵌入式解释器在 python/py(依赖装入 py/Lib/site-packages,不使用虚拟环境)
  11. const pythonDir = path.join(projectRoot, 'python', 'py')
  12. /** 解释器可执行文件:业务代码请通过 nodejs/python-exe-from-config 或此字段获取,禁止自行拼路径 */
  13. const pythonExePath = path.join(pythonDir, isWin ? 'python.exe' : 'python')
  14. module.exports = {
  15. // 项目根目录:开发时为仓库根,打包后由 package/pack-resources/electron-pack-win 流程写入 exe 同目录的 config.js
  16. projectRoot,
  17. // 窗口配置
  18. window: {
  19. width: 800,
  20. height: 600,
  21. autoHideMenuBar: true,
  22. },
  23. devTools: {
  24. enabled: false,
  25. },
  26. vite: {
  27. port: 9527,
  28. host: 'localhost',
  29. },
  30. pythonPath: {
  31. path: pythonDir,
  32. },
  33. pythonDir,
  34. pythonExePath,
  35. adbPath: {
  36. path: path.join(projectRoot, 'lib/scrcpy-adb/adb.exe'),
  37. },
  38. nodejsPath: path.join(nodeDir, isWin ? 'node.exe' : 'node'),
  39. nodeDir,
  40. npmCmdPath: path.join(nodeDir, isWin ? 'npm.cmd' : 'npm'),
  41. npmCliPath: path.join(nodeDir, 'node_modules', 'npm', 'bin', 'npm-cli.js'),
  42. }