drawio-desktop Linux 构建与打包实践指南 drawio-desktop Linux 构建与打包实践指南【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop给同事装画图工具对方只要拖一个文件进 Linux 就能用的那种。这篇带你从源码构建 drawio-desktop完成后dist/目录里会有可直接运行的 AppImage 和可在 Debian/Ubuntu 系系统上安装的 deb 包都是能直接分发的 Linux 构建产物。drawio-desktop 是用 Electron一种用网页技术写桌面应用的框架封装 draw.io 编辑器核心的官方桌面版Apache 2.0 协议图表数据全部存在本地。项目里图表编辑核心以 git submodule嵌套子仓库形式放在drawio/目录这是后面克隆时容易踩的第一个坑。 快速出包最短路径先确认本机三样依赖Node 版本必须不低于 22.12见 package.json 里的engines字段node -v npm -v git --version版本没问题后按顺序执行下面这条最短出包路线git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop npm install npm run sync npx electron-builder --config electron-builder-linux-mac.json --linux AppImage --x64 --publish never逐句说明clone --recursive必须带上否则子仓库drawio/是空的构建直接失败npm run sync会把子仓库drawio/VERSION里的版本号写进package.json不跑它打包出来的版本号是错的npx electron-builder调用打包工具读配置出包--publish never表示只生成本地文件、不往任何远端发布。跑完后去dist/找产物文件名形如draw.io-x64-31.3.2.AppImage按版本号、架构自动拼出来。给 AppImage 加上执行权限后双击即可运行你的第一个 Linux 产物到手再往下看细节。 构建体系拆解整个打包只涉及一个工具 一份平台配置关键配置项都集中在 electron-builder-linux-mac.jsonLinux 和 macOS 共用这份文件配置项位置作用白话构建工具electron-builder见 package.json把 Electron 应用和依赖打成安装介质的打包器target配置linux.target出哪些格式AppImage、deb、rpm 三种arch同上每个 target 内x64 与 arm64 双架构可单独指定executableNamelinux.executableName装好后程序叫drawioiconlinux.icon图标取./build/目录各尺寸图标已备好categorylinux.category应用菜单里归到Graphics图形类appId顶层应用唯一标识com.jgraph.drawio.desktopartifactName顶层产物命名模板产品名-架构-版本.扩展名输出目录directories.output所有产物落到./dist/版本来源sync.cjs构建前从子仓库同步版本号另外注意两点npmRebuild为false说明项目不依赖需要本地重编译的原生模块省掉一个常见卡点asar为true代码会被压进一个包文件里这是 Electron 应用的标准做法。 产物格式对照三种格式的出包命令是同一个通用写法在--linux后面列格式名如AppImage架构用--x64或--arm64指定。各格式差异如下表格式适用系统产物命名规则安装方式AppImage各大发行版通用draw.io-x64-版本.AppImage免安装chmod x加执行权限后直接运行debDebian、Ubuntu 及其衍生draw.io-x64-版本.debsudo dpkg -i 包名.deb或双击安装rpmFedora、openSUSE 等draw.io-x64-版本.rpmsudo rpm -i 包名.rpm本机需先装好 rpm 打包工具差异补充说明AppImage 是单文件即应用适合拷 U 盘分发但首次运行可能需要按系统提示授予执行权限deb 和 rpm 会注册桌面菜单入口和.drawio文件关联适合长期在固定机器上使用。想同时出三种格式就在--linux后面写AppImage deb rpm一条命令全出。 踩坑速查现象可能原因处理办法构建报找不到drawio/内文件克隆时漏了--recursive子仓库为空在仓库根目录执行git submodule update --initnpm install 卡住或 404网络访问 npm 官方源不畅换国内镜像npm config set registry https://registry.npmmirror.com后重试报错提示 Node 版本不满足Node 低于 22.12用 nvm 或系统包升级 Nodenode -v复核出 rpm 失败系统缺 rpm 构建工具链装发行版对应的rpm包不急就先只出 AppImage 和 debEACCES: permission denied写文件曾用 sudo 跑过 npm目录属主变成 root用普通用户重跑npm install不要用 sudo 跑 npmAppImage 打开报架构相关错误x64 包用在了 ARM 机器或反了换--arm64重新构建对应架构的包自改版被自动更新覆盖回官方版本地构建默认开着自动更新构建前执行npm run sync -- disableUpdate关掉自更新 下一步其他平台仓库里还有 electron-builder-win.json、electron-builder-appx.json 等配置配合npm run release-win、npm run release-snap脚本可出 Windows 和 Snap 包写法与本文完全同构个人/二次构建想改代码自用免签名构建仓库有专门文档 doc/BUILDING_FOR_PERSONAL_USE.md含DRAWIO_UNSIGNED用法发版流程官方 CI 如何触发、产物怎么发布见 doc/RELEASE_PROCESS.md 和 README.md求助渠道这个项目不接受外部 PRissue 是唯一的反馈渠道构建中遇到本文没覆盖的问题建议带着完整报错日志去仓库提 issue 求助。【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考