尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Drawio CLI 导出目录报错?4步定位并修复

Drawio CLI 导出目录报错?4步定位并修复 Drawio CLI 导出目录报错4步定位并修复【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop用 drawio 桌面版的 CLI 导出命令批量导出一个目录时命令直接报错、导出文件缺失或格式不对本文按 4 步带你定位并修复 drawio CLI 目录导出故障核对导出参数、确认目录里能导出的文件、验证输出目录可写、用 stderr 关键词定位坏文件。还原故障现场先对号入座跑一遍你的导出命令把看到的现象归到下面三类之一后面每一步都对应这里的某一条命令打印Error: ...后直接退出退出码 1输出目录一个文件都没有——多半是输入路径不存在或--output与多个文件的组合不合法。文件导出来了但数量比源目录少——目录里混着不在导出支持列表内的文件或隐藏文件以.开头被扫描跳过。导出的扩展名和你指定的--format不一致要 png 拿到 pdf——格式值没被识别而静默回退到默认的pdf或输出文件扩展名覆盖了--format。诊断路径按从外到内顺序走 5 步步骤 1核对 CLI 版本与命令格式先跑两条命令确认环境可用drawio --version预期打印版本号例如31.3.2。如果提示 command not found说明安装路径没进PATH直接跳修复 A。drawio --help预期帮助里出现-x, --export、-o, --output、-f, --format三项用法行为drawio [options] [input file/folder]...。目录导出的标准写法是drawio -x -f png -o 输出目录 源目录注意源目录是位置参数不是--export后面的值。所有参数定义都在 src/main/args.js 的OPTION_DEFS里拿不准就翻它。步骤 2清点源目录里真正可导出的文件ls 源目录预期列出的文件里扩展名落在支持列表内的数量 你预期导出的数量。目录扫描只认这 10 种扩展名.drawio、.dio、.xml、.csv、.vsdx、.mmd、.mermaid、.png、.svg、.pdf以.开头的文件一律跳过子目录必须加-r--recursive才会进入。如果支持列表内的文件是 0 个命令会报Error: no exportable files found in the input file/directory跳到修复 B。步骤 3验证--format与--output的参数组合这一步解释格式不对和多文件报错两类现象规则来自 src/main/electron.js 的导出分支格式值大小写敏感只认小写的pdf svg png jpeg jpg xml html传PNG或gif会被静默当成默认值pdf——这就是要 PNG 拿到 PDF的最常见原因。--output指向一个已存在的文件时格式由该文件扩展名决定--format被忽略。多个输入文件 --output是单个文件且没加-k/--check→ 直接报Error: output must be a folder when exporting multiple files。先用单文件验证参数本身没问题drawio -x -f png -o 输出目录 单个文件.drawio预期打印一行单个文件.drawio - 输出目录/单个文件.png退出码 0。如果这步都失败问题不在批量逻辑回到步骤 1 检查命令拼写。步骤 4验证输出目录存在且可写ls -ld 输出目录预期目录存在且属主是你。如果不存在mkdir -p 输出目录先建出来——输出目录不存在时程序不会替你创建最后会报Error writing to file: ...。[ -w 输出目录 ] echo writable预期打印writable。如果没输出说明当前用户没有写权限只读挂载、云盘同步目录等跳到修复 E。步骤 5抓 stderr 关键词精确定位把完整输出落到文件再排查drawio -x -f png -o 输出目录 源目录 21 | tee export.log预期每个成功文件打印一行文件 - 输出路径。失败时按关键词对号stderr 关键词含义去哪修input file/directory not found输入路径不存在修复 Bno exportable files found目录里没有可识别文件修复 Boutput must be a folder多文件写到了单文件修复 DError writing to file输出目录不可写修复 EEmpty export data/ 单文件失败空图或文件损坏修复 FSkipping ... (no diagram data)扫描到的 PNG/SVG/PDF 未内嵌图表属正常跳过不用修注意一个容易误判的行为一个坏文件不会中断整批导出其余文件照常写出只是最终退出码变为 1。所以只有部分文件失败时先看哪些成功了再单独查失败的那一个。修复方案按诊断结果对症处理如果步骤 1 提示 command not found就修复安装路径which drawio预期打印可执行文件路径如/usr/bin/drawio。没打印就把它所在的目录加进PATHLinux 常见位置是/usr/bin或~/opt/draw.io再用drawio --version复验。如果步骤 2 或 5 提示输入缺失就修正源路径用绝对路径重传避免相对路径在别的目录下跑丢位置需要子目录就加-rdrawio -x -f png -o 输出目录 源目录绝对路径 -r预期不再出现not found/no exportable files且-行数与步骤 2 清点的支持列表文件数一致。如果步骤 3 复现格式不对就把格式值改全小写drawio -x -f png -o 输出目录 源目录预期输出文件全部是.png。如果你靠输出文件扩展名定格式就别再传--format两个来源打架时扩展名赢。如果提示 output must be a folder就让输出指向目录drawio -x -f png -o 输出目录 源目录预期输出目录下每个输入生成同名.png。如果确实要写单个目标文件就只导一个输入或加-k--check让已存在的文件自动改名加-1、-2后缀。如果步骤 4 判定不可写就换目录或找管理员权限问题不要自己动chmod把输出目录换到你有写权限的位置如~/exports或请管理员处理原目录。改完复跑步骤 4 的[ -w ... ]确认打印writable再重跑导出。如果有单个文件反复失败就把它移出批量再单独查用 GUI 打开那个文件确认能否正常渲染图是空的空画布会报Empty export data文件本身损坏则报通用Error: Export failed。处理办法是把该文件移出源目录重跑整批再单独修它。别忘了批里其余文件其实已经导出了核对一下输出目录即可不必整批重来。防止再次踩坑导出后必做的 2 个检查批量导出结束后固定跑这两条收尾echo $? ls 输出目录 | wc -l预期退出码0有坏文件时是 1要回头查 stderr文件数与源目录可导出文件数一致。另外养成输出目录与源目录分开的习惯同目录重导时旧产出会被Skipping ... (no diagram data)跳过、不会坏但混放会让目录越来越乱排查时也多一层干扰。想进一步理解参数为什么这么设计读 src/main/args.js 的选项定义和 src/test/cli-args.test.js 的参数解析用例发版与手动构建流程见 doc/RELEASE_PROCESS.md。遇到本文没覆盖的报错把完整 stderr 和drawio --version输出一起贴到 drawio 官方仓库的 Issue 区是最快的求助方式。【免费下载链接】drawio-desktopOfficial electron build of draw.io项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表