本指南提供了在 drawio-desktop 仓库中设置开发环境、理解其代码结构以及参与项目的说明。有关构建和打包应用程序的信息,请参阅 构建与打包。
drawio-desktop 应用程序是围绕核心 draw.io 图形引擎的一个 Electron 封装。设置开发环境涉及克隆两个仓库并配置必要的依赖项。
Draw.io Desktop 使用 git 子模块来包含核心 draw.io 编辑器。您必须递归克隆才能获取两个仓库。
如果您已克隆仓库但未使用 --recursive 标志,则可以单独初始化子模块。
来源: README.md29-36 package.json12
drawio-desktop 仓库由一个嵌入核心 draw.io 应用程序(包含在 git 子模块中)的 Electron 封装组成。理解这种结构对于开发至关重要。
来源: package.json5-7 README.md29-32
src/main/electron.js:Electron 应用程序的主入口点package.json:定义依赖项、脚本和应用程序元数据electron-builder-*.json:用于构建特定于平台的包的配置文件sync.cjs:在构建前同步 draw.io 子模块的脚本draw.io/:包含核心编辑器实现的子模块package.json 文件定义了几个用于开发和构建的脚本。
| 脚本 | 目的 |
|---|---|
start | 在开发模式下运行应用程序(electron .) |
sync | 与 draw.io 子模块同步(node ./sync.cjs) |
release-win | 构建 Windows 64 位包 |
release-win32 | 构建 Windows 32 位包 |
release-win-arm64 | 构建 Windows ARM64 包 |
release-appx | 构建 Windows 应用商店包 |
release-linux | 构建 Linux 包 |
release-snap | 构建 Linux Snap 包 |
应用程序遵循标准的 Electron 架构,具有主进程和渲染进程。
来源: package.json5-7 package.json37-46
要在开发模式下运行应用程序
出于开发目的,您可以设置环境变量来启用开发模式。
要进行调试,请使用 --enable-logging 标志以获取详细输出。
应用程序数据存储在特定于平台的目录中。
~/Library/Application Support/draw.ioC:\Users\<USER-NAME>\AppData\Roaming\draw.io\这些目录包含用户偏好设置、设置和应用程序状态数据。
来源: README.md33-36 README.md51-54
核心 draw.io 编辑器包含为 git 子模块。如果您需要对核心编辑器进行更改,
cd draw.io如果您使用 draw.io 仓库的符号链接而不是子模块,您还需要符号链接 node_modules 目录到 drawio/src/main/webapp 中。
来源: README.md38
draw.io Desktop 应用程序在设计时将安全性作为首要考虑因素。除了更新过程外,它完全与互联网隔离。该应用程序具有严格的内容安全策略,禁止运行远程加载的 JavaScript。
绝不会将任何图表数据发送到外部,也不会传输有关应用程序使用情况的任何分析数据。这种安全方法意味着某些需要外部连接的功能(如 .vsd 和 Gliffy 导入)在桌面版本中不可用。
有关安全模型的更多详细信息,请参阅 安全模型。
来源: README.md10-17
draw.io 项目在贡献方面有特定的政策。除非维护者明确许可,否则该项目通常不对外部贡献开放。这是因为代码库的复杂性以及即使是小的更改也需要进行大量的测试。
如果您遇到错误或有功能请求,
报告问题时,请包含
来源: README.md56-69
来源: README.md40-47
Draw.io Desktop 的支持通过 GitHub issues 提供,基于合理的努力,无合同义务。对于非付费用户,没有私人票务支持。
需要注意的是,购买 Draw.io for Confluence 或 Jira 的许可并不代表您有权获得 Draw.io Desktop 的商业支持,除非您拥有 Draw.io for Confluence Cloud 的付费高级(高级)版本。
来源: README.md19-24