news 2026/9/13 18:36:07

draw.io桌面版完整指南:离线画图的4个场景,以及如何构建自己的版本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
draw.io桌面版完整指南:离线画图的4个场景,以及如何构建自己的版本

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下官方发布三种安装包,区别只在安装范围和权限:

安装包文件安装范围需要管理员
NSISdraw.io-<版本>-windows-installer.exe整机,装进Program Files需要
MSIdraw.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 installnpm 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 18:32:01

Lima 博客与技术文章索引:从社区博客到 v2.x 里程碑的完整脉络

Lima 博客与技术文章索引&#xff1a;从社区博客到 v2.x 里程碑的完整脉络 【免费下载链接】lima Linux virtual machines, with a focus on running containers 项目地址: https://gitcode.com/GitHub_Trending/lim/lima Lima 是一个专注于运行容器的 Linux 虚拟机&…

作者头像 李华
网站建设 2026/9/13 18:31:10

嵌入式校招实战指南:汽车电子与AIoT岗位技术拆解

1. 这份校招日报不是“通知”&#xff0c;而是嵌入式应届生的战术地图你点开这条标题&#xff0c;第一反应可能是&#xff1a;“哦&#xff0c;又一家公司开了校招。”但如果你是正在准备2026届秋招的嵌入式方向本科生或硕士生——尤其是主修单片机、RTOS、Linux驱动、汽车电子…

作者头像 李华