如何将Azure Pipeline下载的安全文件加入React应用构建压缩包?
解决Azure Pipeline中安全文件未纳入构建压缩包的问题
问题出在当前脚本仅将build文件夹内容复制到构建工件目录,而下载的Constants.json留在项目根目录,未被纳入后续打包流程。可以通过以下方式修改脚本,将该文件加入最终压缩包:
方案:单独复制安全文件到工件目录
在Copy Files任务之后,添加一个新的CopyFiles任务,将项目根目录的Constants.json复制到$(Build.ArtifactStagingDirectory),这样打包时就会包含该文件。
修改后的完整YAML脚本:
trigger: - branch name pool: vmImage: 'windows-latest' variables: projectFolder: '.' steps: - task: NodeTool@0 displayName: 'Use Node 14.17.0' inputs: versionSpec: 14.17.0 - script: 'npm i' displayName: 'Install Dependencies' - task: DownloadSecureFile@1 inputs: secureFile: 'Constants.json' - task: CopyFiles@2 inputs: SourceFolder: '$(Agent.TempDirectory)' Contents: '**/*Constants.json' TargetFolder: '$(projectFolder)' - script: 'npm run build' displayName: 'build app' - task: CopyFiles@2 displayName: 'Copy Build Files' inputs: SourceFolder: build TargetFolder: '$(Build.ArtifactStagingDirectory)' # 新增:复制Constants.json到工件目录 - task: CopyFiles@2 displayName: 'Copy Constants.json to Artifact Directory' inputs: SourceFolder: '$(projectFolder)' Contents: 'Constants.json' TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: ArchiveFiles@2 displayName: 'Archive $(Build.ArtifactStagingDirectory)' inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop'
另一种可选方案:将安全文件复制到build目录
如果你的项目构建流程会将build目录下的所有文件打包,也可以在下载文件后直接将Constants.json复制到build目录(若build目录未提前存在,可在构建前新增创建目录的步骤),这样后续复制build内容时会自动包含该文件:
# 替换原有的CopyFiles任务 - task: CopyFiles@2 inputs: SourceFolder: '$(Agent.TempDirectory)' Contents: '**/*Constants.json' TargetFolder: 'build' # 直接复制到build目录
内容的提问来源于stack exchange,提问作者kanchan narula
相关产品推荐
相关产品推荐

