构建与打包
基础命令
npm run package # 打包应用(含构建)→ out/Serpent-<platform>-<arch>/
npm run make # 生成安装包 → out/make/(macOS dmg / Windows zip;Windows 安装器 SerpentSetup.exe 由 Inno Setup 构建)
npm run verify:package # 校验打包产物(ASAR、native 模块、媒体组件)
package/make 的 prepackage/premake 钩子会先确保媒体依赖可用:
- 媒体二进制(
media-binaries ensure,必要时从锁定 release 恢复后校验来源与哈希) - ufbx WASM 产物(
verify-ufbx-wasm,哈希锁scripts/ufbx-wasm-lock.json) - 打包产物完整性(
verify:package:ASAR、better_sqlite3.node、Host utilities)
package/make 会更新 dev 的 Electron binary,跑完执行 npm run rebuild:native 恢复。
如果媒体可执行文件缺失,或本地文件与已晋升的 manifest 不一致,钩子会自动从
锁定的 Serpent-Build release 下载并重新校验。也可以手动执行同一流程:
npm run media:ensure
离线环境可设置 SERPENT_MEDIA_AUTO_ACQUIRE=0,此时校验失败会直接报错,不会联网下载。
发布流水线(release:local)
一键全流程:
npm run release:local
阶段:verify → media → package → e2e → make → checksums
| 阶段 | 内容 |
|---|---|
| verify | rebuild:native + verify:mainline(与 CI 相同门禁) |
| media | 从受控 URL 下载媒体包(media:acquire)+ 校验 |
| package | electron-forge package + verify:package |
| e2e | 对打包产物跑启动测试(test:e2e:packaged) |
| make | 生成安装包 |
| checksums | 产物 SHA-256 manifest(带版本头) |
跳过慢阶段的选项:--skip-verify / --skip-media / --skip-e2e。单独跑某阶段:npm run release:<phase>(e2e 阶段为 npm run release:e2e:packaged)。