ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

drawio-desktop 完整指南:离线免费画流程图与架构图

drawio-desktop 完整指南:离线免费画流程图与架构图

drawio-desktop 完整指南:离线免费画流程图与架构图

【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop

drawio-desktop 是 draw.io 官方桌面版,把核心编辑器打包成 Electron 应用。流程图、架构图、思维导图全部本地渲染,断网照样画,个人和公司都能免费用。

为什么需要它

浏览器里画图,一半的麻烦来自网络。你在网页里画了一半,标签页被关、网络被切,编辑状态就悬空在那。

更典型的是内网场景。公司内网机器连不上外网,网页版编辑器根本加载不出来,而 drawio-desktop 的所有 JavaScript 都内置在本机,局域网、断网环境都能跑。

还有一类顾虑是隐私。应用的内容安全策略(CSP)禁止执行任何远程加载的脚本,图的内容本身不会外发,适合画包含业务信息的架构设计图。

装好它:离线安装步骤

前提是本机装好 Node.js,版本不低于 22.12.0(package.json 的engines字段写明了这个下限)。

🚀 第一步,检查 Node 版本:

node -v

完成标志:输出类似v22.x.x且不低于 22.12.0,低于就升级 Node。

🚀 第二步,克隆源码。draw.io 核心是以 git 子模块形式挂在drawio/目录下的,必须带--recursive:

git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop

完成标志:drawio/目录里有完整的 draw.io 代码,而不是一个空文件夹。

🚀 第三步,在仓库根目录安装依赖:

npm install

完成标志:node_modules生成完毕,Electron 等开发依赖就位,无报错。

🚀 第四步,启动应用:

npm start

完成标志:electron .被拉起,几秒后弹出 draw.io 主窗口,左侧形状库、中间画布直接可用。

🚀 第五步(可选),启动后行为异常时带日志再跑一次:

npm start --enable-logging

完成标志:控制台持续输出主进程日志,方便定位卡在哪一步。

数据存在哪里,会不会联网

你的 Local Storage 与 Session Storage 落在系统应用数据目录:

  • macOS:~/Library/Application Support/draw.io
  • Windows:C:\Users\<用户名>\AppData\Roaming\draw.io\

网络侧,应用被设计成与外网隔离:唯一的外部请求是每天最多一次连接 github.com 查新版本,更新包从 GitHub 名下的 AWS S3 桶下载。

想彻底离线,任选其一:设环境变量DRAWIO_DISABLE_UPDATE=true,或启动时传--disable-update。实现见 src/main/electron.js。

⚠️ 一个例外:图文件如果嵌入了 URL 形式的外部资源(图片、背景、字体),打开时会去拉取这些资源以正常渲染,这会把你的 IP 暴露给对方服务器。图的内容本身不会外发,但陌生来源的图文件别轻易打开。

速查表:关键文件与命令

文件 / 命令作用
package.jsonnpm 脚本与依赖定义,start脚本实际执行electron .
src/main/electron.js主进程入口,窗口、更新检查、日志都在这里
src/main/electron-preload.js预加载脚本,隔离主进程与渲染层
electron-builder-win.jsonWindows 安装器打包配置
electron-builder-linux-mac.jsonLinux / macOS 打包配置
sync.cjs构建前从 draw.io 子模块读取版本号并同步依赖
src/test/CLI 参数、窗口边界等模块的单元测试
npm start启动应用
npm start --enable-logging带日志启动,排查启动问题
DRAWIO_DISABLE_UPDATE=true/--disable-update关闭全部更新检查

避坑清单

⚠️drawio/目录是空的:克隆时漏了--recursive,子模块没拉下来,后续什么都跑不起来,重新带参数克隆即可。

⚠️ 依赖放错位置:draw.io 子模块war/package.json的 dependencies 会原样打进安装包,开发期才用的包必须放 devDependencies,DEVELOPMENT.md 里专门警告过。

⚠️ 更新子模块顺序乱了:要先在子模块里提交变更、打上版本 tag,再回到本仓库推送,推送动作才会触发 CI 构建。

⚠️ 打开陌生图文件后出现意外外联:图中嵌入了外部 URL 资源,打开时会被拉取,来源不明的图先别急着打开。

⚠️ 找不到官方支持渠道:支持走仓库 issue 系统,非付费用户没有私人工单,购买 Confluence / Jira 版本也不包含 desktop 支持。

继续深入

  • DEVELOPMENT.md:开发环境与 CI 构建细节
  • doc/RELEASE_PROCESS.md:发布、签名与构建流程
  • doc/BUILDING_FOR_PERSONAL_USE.md:给自己打一个未签名构建
  • SECURITY.md:安全策略说明

【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进