Azure DevOps Pipeline配置rootdirectory找不到dist目录报错如何解决
Azure DevOps Pipeline FTP上传dist文件问题修复方案
第一步:定位问题根源
- 在生成dist的构建任务(如
npm run build)之后,新增一个目录扫描任务,确认dist是否生成、生成路径:- Windows代理用命令:
dir /s /b $(System.DefaultWorkingDirectory) - Linux/macOS代理用命令:
find $(System.DefaultWorkingDirectory) -type d -name "dist"
运行流水线后查看日志输出,就能拿到dist的完整绝对路径,同时能确认dist目录是否真的生成成功。
- Windows代理用命令:
- 检查项目构建配置:部分框架默认构建输出目录是
build而非dist,或者多包项目的dist会生成在packages/[子包名]/dist这类子路径下,和预期的根目录dist不一致。 - 确认任务所属Job:如果构建任务和FTP上传任务分属不同Job,前序Job生成的文件不会自动同步到后续Job,必须通过制品传递才能拿到。
第二步:修复配置
- 若已确认dist的完整路径,FTP上传任务的
rootDirectory参数直接填扫描得到的完整路径即可,比如根目录下的dist就填$(System.DefaultWorkingDirectory)/dist,如果代码在Git仓库的client子文件夹下就填$(System.DefaultWorkingDirectory)/client/dist,不要随意加自定义根目录名。 - 若构建和FTP分属不同Job:先在构建Job末尾添加Publish Pipeline Artifacts任务,将dist目录发布为流水线制品;再在FTP任务所在Job开头添加Download Pipeline Artifacts任务,把dist下载到当前工作目录,再将
rootDirectory指向下载后的dist路径。 - 检查FTP任务的
filePatterns参数:默认值**会匹配dist下所有层级的文件,如果修改过该参数,要保证规则能覆盖到你需要上传的所有文件,避免漏传。 - 打开FTP任务的
preservePaths开关,避免把本地的完整目录结构同步到FTP服务器,只会上传dist目录内的文件层级。
内容的提问来源于stack exchange,提问作者Robin Doorenbosch
相关产品推荐
相关产品推荐

