菜单

概述

相关源文件

本文档提供了对 drawio-desktop 存储库的介绍,解释了它的目的、架构和主要功能。drawio-desktop 应用程序是一个基于 Electron 的包装器,围绕核心 draw.io 图表编辑器,提供安全、支持离线操作的桌面体验。

有关系统架构的详细信息,请参阅 架构。有关构建和打包文档,请参阅 构建和打包

什么是 draw.io Desktop?

draw.io Desktop 是一款独立的图表应用程序,它将核心 draw.io 编辑器封装在 Electron 容器中。它使用户能够在不联网的情况下,在本地计算机上创建、编辑和保存图表。

来源:README.md1-9 package.json1-5

主要功能

  • 完全离线操作:无需互联网连接即可工作
  • 增强的安全性:除更新过程外,与互联网隔离
  • 跨平台支持:适用于 Windows、macOS 和 Linux
  • 本地文件系统访问:与操作系统文件处理直接集成
  • PDF 导出功能:内置生成 PDF 输出的能力

来源:README.md10-17 package.json25-30 package.json37-46

安全模型

安全性是 draw.io Desktop 的主要目标之一。该应用程序被设计为与互联网完全隔离,唯一的外部连接是更新过程,该过程会检查 GitHub 以获取新版本。

主要安全特性

  • 内容安全策略禁止运行远程加载的 JavaScript
  • 图表数据绝不会外部发送
  • 不收集应用程序使用情况的分析数据
  • 本地存储保存在用户AppData文件夹中

来源:README.md10-17 README.md51-55

架构概述

该应用程序遵循 Electron 的架构模式,包含两个主要进程

进程角色关键文件
主进程控制应用程序生命周期、窗口管理、文件系统访问src/main/electron.js
渲染器进程运行 draw.io Web 应用程序,处理 UI通过 IPC 与主进程通信

来源:package.json5-7 README.md3-4

与核心 draw.io 的关系

drawio-desktop 存储库包含核心 draw.io 编辑器作为一个 git 子模块。这种架构允许桌面应用程序保持 Web 编辑器的全部功能,同时添加桌面特有的功能。

来源:README.md29-31 package.json21-24 package.json36

平台支持

draw.io Desktop 支持多个平台,并提供特定平台的构建版本

平台构建类型配置
Windows安装程序、便携版、ARM64、Windows 应用商店 (APPX)electron-builder-win.json, electron-builder-win32.json, electron-builder-win-arm64.json, electron-builder-appx.json
macOSDMGelectron-builder-linux-mac.json
LinuxAppImage, DEB, RPM, Snapelectron-builder-linux-mac.json, electron-builder-snap.json

来源:package.json14-19

开发

draw.io Desktop 的开发工作流程包括

  1. 递归克隆存储库以获取桌面应用程序和核心编辑器子模块
  2. 使用 npm 安装依赖项
  3. 使用 npm start 运行应用程序
  4. 使用提供的脚本为不同平台构建发布版本

有关完整的开发说明,请参阅 开发指南

来源:README.md26-42 package.json11-19

版本控制与更新

draw.io Desktop 遵循语义化版本控制,并使用自动更新系统为用户提供最新的功能和安全更新。更新过程会检查 GitHub 以获取新版本,并从 AWS S3 存储桶下载。

有关更新系统的更多信息,请参阅 更新系统

来源:README.md10-17 package.json3