构建与打包
August 22, 2026 · View on GitHub
Windows 完整发行包
pnpm install --frozen-lockfile- 构建 harness 和需要编译的 vendored 插件。
- 生成并安装 Marisa profile,执行 profile/MyGO 自检。
desktop/bundle/make-bundle.ps1创建生产后端backend.tar.zst。脚本内建两道与运行期插件管理相关的门禁:bundle 根的pnpm.cmdshim 必须能在解包后的 node.exe 上跑出版本号(JS 版 pnpm 以根 prod 依赖进 hoisted 树);部署到.dsh/profiles/marisa的 profile 的file:依赖与 workspace globs 会被重写为部署布局下的相对路径并逐一断言可解析(源 profile 的引用只对源位置成立)。go build -tags embeddedbundle生成单文件 EXE。首次启动时解压后端到用户本地目录。desktop/scripts/build-msi.ps1生成薄桌面壳 MSI;MSI 在安装阶段展开backend.tar.zst,首次启动不再自解压。- 生成
SHA256SUMS.txt,由手动 Release workflow 上传。
MSI 不包含 standalone EXE;两种格式各自包含运行所需后端。
Linux/macOS 实验产物
首版实验产物只构建当前平台的 Wails 桌面壳,依赖用户环境中的 dsh,不是与 Windows 等价的完整自包含包。Linux 还需要 GTK/WebKit 运行库;macOS 产物没有签名或 notarization。
实验构建失败不会阻止 Windows Release。维护者修复后可重新运行实验构建并手工补充同一 Release,但不得把缺失平台描述为已支持。
本地验证
pnpm test
go test -C desktop -tags installedbundle ./...
go test -C desktop -tags embeddedbundle ./...
pwsh -NoProfile -File build.ps1
pwsh -NoProfile -File desktop/bundle/make-bundle.ps1
go build -C desktop -tags embeddedbundle -o release/marisa-desktop-standalone.exe .
pwsh -NoProfile -File desktop/scripts/build-msi.ps1
正式发版还必须人工观察桌面窗口已经渲染、插件清单符合预期,并完成 MSI 安装/启动/卸载。后端 HTTP 200 不能替代桌面验收。