drawio-desktop:本地优先的跨平台图表工具,Visio 文件一次导入迁移
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
drawio-desktop 是一个基于 Electron 封装 draw.io 核心编辑器的离线绘图工具,采用 Apache 2.0 许可证,免费。如果团队的 Visio 图表要迁到一个能进 Git 仓库、不依赖联网的工具,绕不开两个问题:VSDX 导入后版面保不保得住,离线跑起来顺不顺。这篇文章按选型、跟做任务、踩坑的顺序走一遍。
选型判断
| 适用场景 | 不适用场景 | 技术栈依赖 | 许可协议 |
|---|---|---|---|
| 本地绘制流程图、UML、网络图;Visio 文件迁移归档;图表文件进 Git 仓库 | 多人实时同编一张图;免安装的在线分享协作 | 源码构建需 Node.js ≥ 22.12 与 Electron;安装版无需构建环境 | Apache-2.0 |
如果你主要在浏览器里做多人实时协作,这页可以关掉。如果你的需求是离线绘图、导入 Visio 文件、把图表当文件管理,继续往下看。
能力地图
素材准备:形状库与导入兼容性
编辑器本体在 drawio 子模块里,形状库内置 General、流程图等分类,左侧 Search Shapes 可以直接搜,不够用再开 More Shapes 扩展。导入侧除了 .drawio,据源码描述,CLI 还支持读取 vsdx、csv 和 Mermaid(.mmd/.mermaid)文件;编辑器也提供 Visio 文件导入入口,老文件基本不用重画。
画布操作:网格对齐与多页面
右侧 Diagram 面板提供 Grid、Page View、Guides、Autosave 等开关,还能改纸面尺寸和横竖版式。手动对齐靠网格吸附加参考线;需要自动布局时,CLI 的 --layout 参数支持 verticalFlow、horizontalTree 这类预设。页面标签页可以加页,一个文件里放多张图没问题。
输出与分享:导出格式与存储路径
可导出格式覆盖 pdf、svg、png、jpeg、jpg、xml、html。菜单导出之外,命令行可以批量转换,-a 导出 PDF 全部页面,-e 把图表数据嵌进导出结果。应用配置和会话数据存在 AppData 目录,各平台路径:
| 平台 | 存储路径 |
|---|---|
| macOS | ~/Library/Application Support/draw.io |
| Windows | C:\Users\<用户名>\AppData\Roaming\draw.io\ |
| Linux | ~/.config/draw.io(据文档描述) |
跟做一次实际任务
这次的目标是:从源码构建起来,打开一份本地 VSDX,导出成 PDF。没有构建环境的话可以直接用官方发布包,日常操作是一样的。
git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop && npm install && npm start克隆时 --recursive 不能省,核心编辑器是个 git 子模块,漏了构建会直接失败。启动后就是熟悉的三栏布局:
从菜单导入 VSDX 后,整体版面通常保留得住,字体和间距细节可能要动:用网格和参考线把形状重新对齐,双击修正文字,再走导出对话框选 PDF,一份可打印的文件就出来了。做完这个,你实际上已经掌握了 drawio-desktop 的日常主线:导入、编辑、导出。
横向对比
| 工具 | 授权费用 | 离线能力 | Visio 格式兼容 | 协作模式 | CLI 批量导出 |
|---|---|---|---|---|---|
| drawio-desktop | 免费(Apache-2.0) | 完全离线,默认不走网络 | 可读取 vsdx,版面保留视原文件而定 | 本地文件 + Git,无实时同编 | 支持,可整目录递归转换 |
| Visio | 付费订阅 | 桌面版离线 | 原生 vsdx | 以文件流转为主 | 依赖 VBA 脚本,无标准 CLI |
| Lucidchart | 付费 SaaS | 云端优先,离线编辑有限 | 支持 Visio 文件导入(以官方说明为准) | 浏览器实时协作 | 无 |
| Excalidraw | 免费(开源) | 浏览器本地运行 | 不支持 vsdx | 浏览器协作白板 | 无标准批量导出 |
四者定位其实分得很开:Visio 是存量授权企业的内建标准,Lucidchart 卖协作,Excalidraw 管轻量手绘,drawio-desktop 是表里唯一同时满足免费、离线、批量 CLI 的一个。短板也要说清楚:它没有多人实时协作,同一张图并行编辑只能靠分工加合并。
进阶工作流
用 Git 管理随代码走的架构图
适用场景:架构图和它描述的代码在同一个仓库,图要跟着代码一起评审。
- 图表以 .drawio 格式保存,放进仓库固定目录(如 docs/architecture/)
- 改图时和对应代码改动放在同一个 commit 提交
- 评审需要配图时用 CLI 批量导出 PNG/PDF
- 合并冲突按页面处理,必要时导出不压缩 XML 再看差异
注意:.drawio 文件默认是压缩 XML,直接看 diff 可读性差。关键图建议用 CLI 的 -u 参数导出不压缩 XML 再核对,或同时附上导出图。
把存量 Visio 库批量转成可评审的存档
适用场景:一次性迁移几十上百份老 vsdx,且原格式不再维护。
- 把 vsdx 文件按业务线整理进目录
- 用 CLI 对目录输入跑批量导出,-r 递归子目录,-f 指定 png 或 pdf
- 抽查前几份的导出结果,重点看缺形状和字体替换
- 原 vsdx 与导出图一起入库,保住"可编辑源 + 静态图"两层
内网或统管部署时,建议同时关掉启动时的更新检查,避免应用联网拉取官方版本:
export DRAWIO_DISABLE_UPDATE=true启动参数 --disable-update 效果等价。
踩坑记录
自构建启动后打开的却是官方版
坑在这:draw.io 每用户只允许一个运行实例,官方应用还开着时启动自构建版本,只是在官方进程里开了个新窗口,改动全没生效。
- 启动自构建版之前先退出所有在跑的 draw.io
- 用 npm start --enable-logging 看日志,确认跑的是你的构建
- 只想验证改动的话,直接从源码 npm start 跑,不用先打安装包
打开图表时触发了对外部 URL 的请求
原因是图表里可以引用外链的图片、背景或字体,应用打开时会按 URL 拉取这些资源,会把 IP 之类的元数据暴露给那台服务器。
- 不信任来源的图,先隔离环境里打开再决定是否采用
- 存档前把外部引用的图片换成内嵌资源
- 导出时加 -e 嵌入图表数据,让导出文件可独立再编辑
自构建被自动更新换回官方版
原因是默认的更新机制启动时检查官方 release,fork 里的改动会被静默覆盖。
- 设 DRAWIO_DISABLE_UPDATE=true 或加 --disable-update 启动
- 个人构建时执行 npm run sync -- disableUpdate,把更新开关一并禁用(据文档描述)
落地检查清单
| 检查项 | 建议做法 | 优先级 |
|---|---|---|
| 安装方式统一 | 无管理员权限的机器用 per-user MSI 或便携版,避开需要管理员的 NSIS 安装器 | P0 |
| 内网关闭更新检查 | DRAWIO_DISABLE_UPDATE=true 或 --disable-update | P0 |
| Visio 试点迁移 | 挑 3-5 份代表性 vsdx 导入,核对版面与字体 | P0 |
| 图表入库规范 | .drawio 文件固定目录与命名,随代码提交 | P1 |
| 批量导出脚本 | 固定 CLI 命令(目录输入 + -r + -f)沉淀为内部脚本 | P1 |
最小可用集就是前三项:装法、关更新、试点迁移几份代表图,跑通就够启动了。
整体看,drawio-desktop 的定位很明确:图表是本地文件,版本控制交给 Git,网络默认不参与。如果你们现在正被 Visio 文件散落难迁移的问题卡住,可以先在一台机器上试一份 VSDX,再决定要不要铺开。
源码目录 · 文档目录
【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考