Files
MorphDoc/apps/desktop/README.md
T

1.6 KiB
Raw Blame History

Desktop 桌面端

apps/desktopv0.4.0 新增的 Electron 桌面应用。当前已经完成 Electron 壳、受限 preload、进程内应用服务、隐藏分页窗口、Electron Chromium PDF 输出、原生 PDF 另存为和 Windows 安装包验证。

开发

从仓库根目录运行:

npm run desktop:dev

桌面端不启动 Fastify,也不占用本地 HTTP 端口。React 界面通过受限 IPC 调用 packages/application 中的 Markdown 渲染和主题服务,PDF 由 Electron 自带 Chromium 生成。Web 与 Docker 继续通过 Fastify HTTP 适配器使用同一套应用服务。

构建与打包

npm run build -w @md-to-pdf/desktop
npm run desktop:package
npm run make -w @md-to-pdf/desktop

版本化目录包、Squirrel Setup.exe 和 ZIP 输出到 apps/desktop/out/v0.4.0/。该目录被 Git 忽略。公司内部分发以 Setup.exe 为正式安装包,ZIP 作为免安装辅助包;当前未配置代码签名, Windows 首次运行可能显示“未知发布者”提示。

当前目录包只包含一套 Electron Chromium,不携带 Playwright Chromium。 Web 静态资源作为只读资源放在 Electron resources/dist 下,生产环境通过 mdpdf://bundle/ 自定义协议加载。

安全边界

  • 应用窗口和 PDF 窗口均关闭 Node Integration
  • 启用 Context Isolation 和 Chromium Sandbox
  • preload 只暴露渲染、主题、生成 PDF 和保存 PDF 所需的窄接口;
  • 主进程校验 IPC 发送者和分页载荷;
  • PDF 窗口使用独立内存 Session,并阻止外部网络资源;
  • 应用页面使用自定义协议,不使用 file://