打包流程.md 3.7 KB

打包流程

  1. 关掉已运行的 AndroidRemoteController.exe。
  2. 项目根目录执行:npm run build,再执行 npx electron-builder --win --x64(或一键:npm run electron:build:x64,或双击 package/package-x64.bat)。
  3. 产物在 package\build\win-unpacked
  4. 运行:package\build\win-unpacked\AndroidRemoteController.exe
  5. 发给他人的用法:把整个 win-unpacked 文件夹打包发过去即可,开包即用。前端资源已打进该目录下的 dist\(来自 package/build/web),exe 会从这里加载页面。

package/pack-resources(打包资源目录)

electron-pack-win.js 同目录:Electron win32-x64 解压目录或 zip、NSIS、winCodeSign、patches(patch-package)、以及会合并进 win-unpackedstatic 模板、config.js / run.js / run.batkill-all-process.ps1(退出 exe 时由主进程调用,按目录清理 adb/node/python)。缺项时打包脚本会退出(禁止在线下载)。


打包前需确认的配置

package.json → build

  • directories.output 打包输出目录。当前为 "package/build",产物在 package\build\win-unpacked

  • files 打进 asar 的内容。当前含 electron/**config.jsnodejs/**python/**lib/** 等,不要漏掉运行时用到的项。不要static 放进 files,static 不打包。

  • asarUnpack 不压进 asar、解出到 app.asar.unpacked 的项。当前含 nodejs/**config.jslib/**python/** 等。前端由打包脚本从 package/build/web 复制到输出目录的 dist/,exe 从该路径加载。

  • win.target

    • target: "dir":只输出目录,不打安装包。
    • arch: ["x64"]:当前仅 x64;与命令行 --x64 一致。

根目录 config.js

  • window 窗口宽高、是否隐藏菜单栏。

  • adbPath.path 相对项目根的 adb 路径,默认 lib/scrcpy-adb/adb.exe。打包后以 app.asar.unpacked 或 exe 同目录为根解析,一般不用改。

  • pythonPath.path Python 嵌入式目录为 python/py(依赖装在 python/py/Lib/site-packages),打包后仍为 python/py

目录与运行时

  • static/(沙盒目录,不打包) 应用数据与工作流等存放目录。列入 build.files,打包后不会在 asar 内。运行时使用与 exe 同级static 目录(即 package\build\win-unpacked\static),首次运行会自动创建;主进程通过 STATIC_ROOT 环境变量传给子进程。

  • lib/scrcpy-adb/ 需存在 adb.exe、scrcpy.exe 及 scrcpy 依赖 dll/bat;会被 files 打进包,在 unpacked 中供主进程和 node 脚本调用。

  • python/py 嵌入式 Python(python.exeLib/site-packages)。图像匹配/裁剪等流程依赖此目录;不再使用 python/x64python/arm64

vite.config.mjs 与打包

  • base: './' 打包后的 exe 从“本地文件”打开页面。不设为 './' 时,js/css 链接会指到错误位置,白屏或报错;设为 './' 后为相对路径“当前目录下的 assets/xxx”,可正常加载。不要删或改成别的。

  • server 只影响开发时的地址和端口,与打 exe 无关。

  • 构建产物 npm run build 会生成 package/build/web(index.html + assets 等)。打 exe 时脚本会把其复制到输出目录的 dist/,exe 启动时加载此处的 index.html。

package-lock.json

  • 执行 npm installnpm run build 时会按 package-lock.json 安装依赖,保证各环境版本一致、构建可复现。
  • 该文件不打进 exe(不在 build.files 里),只用于本地/CI 的安装与构建。