draw.io桌面版完整指南:离线画图的4个场景,以及如何构建自己的版本
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
draw.io桌面版是官方基于Electron封装draw.io核心编辑器的桌面绘图工具,Apache 2.0许可、可自由商用,绘图数据默认只留在本机。适合不想把架构图、流程图或敏感业务流程上传到云端的人。最大好处:断网也能完整创建和保存图表,命令行还能把图纸批量导出成PNG、PDF、SVG。
为什么选桌面版:画图数据不出本机
在线版画图时文件要经过服务器,而桌面版把同一个核心编辑器(仓库里的drawio/子模块)装进Electron壳里,图纸内容、设置、本地存储全部落在本机磁盘。
官方代码里没有任何使用统计上报,内容安全策略(CSP)也禁止加载远程JavaScript。唯一的对外连接是启动时的版本更新检查——这一条后面可以一键关掉。
本地数据的位置:
- Windows:
C:\Users\<用户名>\AppData\Roaming\draw.io\ - macOS:
~/Library/Application Support/draw.io
适合谁:内网环境、金融、医疗、航空这类对数据外流敏感的团队。要注意一个细节:图纸里如果嵌了URL引用的图片、背景或字体,打开文件时会向该URL发起请求以正确渲染——虽然不传图纸内容,但会暴露你的IP等元数据,所以别打开来源不明的图纸。
三种Windows安装包怎么选
Windows下官方发布三种安装包,区别只在安装范围和权限:
| 安装包 | 文件 | 安装范围 | 需要管理员 |
|---|---|---|---|
| NSIS | draw.io-<版本>-windows-installer.exe | 整机,装进Program Files | 需要 |
| MSI | draw.io-<版本>.msi | 仅当前用户 | 不需要 |
| 便携版 | draw.io-<版本>-windows-no-installer.exe | 不安装,直接运行 | 不需要 |
选择逻辑很直接:
- 机器没有管理员权限 → 选MSI。它装进用户目录,支持企业静默分发
- 需要把
.drawio文件关联到应用 → 选NSIS。便携版不注册文件类型关联 - U盘里拷一份临时用 → 便携版
- 另外微软商店(APPX)版本也是按用户安装、免管理员
一行命令让它彻底离线
默认情况下应用与互联网隔离,只有更新检查例外:启动时去检查新版本,下载走的是官方渠道。如果你在内网、或者由IT统一管控版本,可以彻底关掉这个检查。
下面这条设置环境变量后,应用不再发起任何更新请求:
set DRAWIO_DISABLE_UPDATE=true也可以用启动参数--disable-update达到同样效果;想要"提示后再更新"而不是静默更新,则加--no-silent-update。相关处理逻辑在 src/main/disableUpdate.js,构建时由 sync.cjs 生成。
🔒 关掉之后,应用就实现了真正的零外联:图纸、配置、设置都不会离开这台机器。
命令行导出:4个实用场景
桌面版不只是图形界面,它本身就是一个命令行工具,能无界面地批量处理图纸。输入支持.drawio,也兼容 Visio(vsdx)、CSV 和 Mermaid(.mmd);输出支持 pdf、png、jpeg、svg、xml、html 六种格式。
一条命令就能完成"打开并导出":
drawio -x -f png -o out.png diagram.drawio drawio -x -r -f pdf docs/常见用法举例:
- 批量转换:对文件夹加
-r递归,一次把整个目录的图纸转成PDF归档 - 贴网页配图:
-t让PNG背景透明 - 导出指定页:
-p选单页,-g 1..3指定PDF页码范围 - 自动排版后导出:
--layout verticalFlow打开即跑布局再导出
所有参数的完整定义和解析逻辑都在 src/main/args.js,对应测试在 src/test/cli-args.test.js,改过或加过参数可以跑一下npm test验证。
三步构建自己的版本
项目不接受外部代码贡献,但Apache 2.0许可允许你fork后自用。适合想改窗口标题、定制默认行为、或在内网分发定制版的场景。完整流程见 doc/BUILDING_FOR_PERSONAL_USE.md。
直接从源码跑起来
前提是Node.js 22.12+。注意必须递归克隆,核心编辑器是git子模块,漏了--recursive构建会直接失败:
git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop npm install npm start改动验证不用打安装包,源码树里直接跑npm start就行;加DRAWIO_ENV=dev可自动打开DevTools。
打包未签名安装程序
自己打的包没有官方代码签名,需要显式声明并接受系统的安全警告。构建前先执行npm install和npm run sync -- disableUpdate——后者关掉自动更新,防止你的定制版被官方更新悄悄覆盖回去。然后直接调electron-builder:
DRAWIO_UNSIGNED=true npx electron-builder --config electron-builder-win.json --publish never要注意三点:
- 别用
npm run release-win这类脚本,那是CI流程,会尝试把产物发布到GitHub Releases - macOS个人构建会被Gatekeeper隔离,拷到
/Applications后执行一次xattr -cr即可;Windows的SmartScreen警告选"仍要运行" - 自己打的NSIS安装程序是按整机安装的,会覆盖官方版本
常见卡点与选型建议
⚠️ 构建和使用时最容易踩的几个坑:
- 改了代码跑起来却没变化:draw.io每用户只允许单实例。官方版还在运行时,你的构建只会往官方版里开个新窗口。先把官方版完全退出
- 忘了设
DRAWIO_UNSIGNED,Windows构建会报签名库相关错误,新开的终端要重新设置一次 - Linux本地构建的包名是
draw.io而官方是drawio,所以会并列安装而不是覆盖
选型落点:
- 普通用户:装官方包即可,没管理员权限就用MSI
- 安全敏感环境:MSI + 禁用更新检查 + 不打开来源不明的图纸
- 需要定制应用壳:fork后按个人构建文档打包;核心编辑器本身的修改要动到
drawio子模块,参考 CLAUDE.md 里的架构说明 - 发布流程细节可查 doc/RELEASE_PROCESS.md
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考