npm run build,再执行 npx electron-builder --win --x64(或一键:npm run electron:build:x64,或双击 package/package-x64.bat)。package\build\win-unpacked。package\build\win-unpacked\AndroidRemoteController.exe。win-unpacked 文件夹打包发过去即可,开包即用。前端资源已打进该目录下的 dist\(来自 package/build/web),exe 会从这里加载页面。与 electron-pack-win.js 同目录:Electron win32-x64 解压目录或 zip、NSIS、winCodeSign、patches(patch-package)、以及会合并进 win-unpacked 的 static 模板、config.js / run.js / run.bat、kill-all-process.ps1(退出 exe 时由主进程调用,按目录清理 adb/node/python)。缺项时打包脚本会退出(禁止在线下载)。
directories.output
打包输出目录。当前为 "package/build",产物在 package\build\win-unpacked。
files
打进 asar 的内容。当前含 electron/**、config.js、nodejs/**、python/**、lib/** 等,不要漏掉运行时用到的项。不要把 static 放进 files,static 不打包。
asarUnpack
不压进 asar、解出到 app.asar.unpacked 的项。当前含 nodejs/**、config.js、lib/**、python/** 等。前端由打包脚本从 package/build/web 复制到输出目录的 dist/,exe 从该路径加载。
win.target
target: "dir":只输出目录,不打安装包。arch: ["x64"]:当前仅 x64;与命令行 --x64 一致。config.jswindow 窗口宽高、是否隐藏菜单栏。
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.exe 与 Lib/site-packages)。图像匹配/裁剪等流程依赖此目录;不再使用 python/x64 或 python/arm64。
base: './'
打包后的 exe 从“本地文件”打开页面。不设为 './' 时,js/css 链接会指到错误位置,白屏或报错;设为 './' 后为相对路径“当前目录下的 assets/xxx”,可正常加载。不要删或改成别的。
server 只影响开发时的地址和端口,与打 exe 无关。
构建产物
npm run build 会生成 package/build/web(index.html + assets 等)。打 exe 时脚本会把其复制到输出目录的 dist/,exe 启动时加载此处的 index.html。
npm install、npm run build 时会按 package-lock.json 安装依赖,保证各环境版本一致、构建可复现。build.files 里),只用于本地/CI 的安装与构建。