DevOps构建安装Pdftron时随机出现解压错误求助
解决WebViewer Downloader间歇性解压错误的思路
针对你在DevOps流水线中使用npx @pdftron/webviewer-downloader --path src/lib --v 8.4.0时出现的间歇性解压错误,结合你提到的GitHub问题修复情况,提供以下解决方向:
强制使用最新版下载器:你指定了WebViewer的版本为8.4.0,但下载器本身可能有后续修复的版本。执行命令时明确指定下载器的最新版本,避免使用旧的有潜在问题的版本:
npx @pdftron/webviewer-downloader@latest --path src/lib --v 8.4.0添加命令重试机制:间歇性错误大概率和网络波动、临时文件读写异常有关,在流水线脚本中加入重试逻辑,自动重试失败的下载解压操作:
MAX_RETRIES=3 RETRY_COUNT=0 until npx @pdftron/webviewer-downloader@latest --path src/lib --v 8.4.0; do RETRY_COUNT=$((RETRY_COUNT+1)) if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then echo "下载解压重试失败,退出流程" exit 1 fi echo "重试第 $RETRY_COUNT 次,等待5秒后执行..." sleep 5 done绕过下载器,手动下载解压:直接从官方源获取WebViewer压缩包,手动完成解压步骤,规避下载器的解压逻辑问题,同时可利用流水线缓存优化速度:
# 下载对应版本的压缩包 wget https://download.pdftron.com/webviewer/8.4.0/webviewer.zip # 解压到指定路径 unzip webviewer.zip -d src/lib # 清理临时压缩包 rm webviewer.zip检查流水线环境资源:ubuntu-latest虚拟机的临时目录可能存在空间不足或权限问题,导致解压失败。先检查临时目录空间:
df -h /tmp若空间不足,可自定义临时目录后再执行下载命令:
export TMPDIR=/path/to/your/custom/tmp npx @pdftron/webviewer-downloader --path src/lib --v 8.4.0尝试切换Node版本:虽然Node14.x兼容WebViewer 8.4.0,但部分Node版本的内置解压模块可能存在稳定性问题,可尝试切换到Node16.x版本(仍兼容8.4.0)测试是否解决问题。
内容的提问来源于stack exchange,提问作者Developer90
相关产品推荐
相关产品推荐

