Azure CI/CD 管道 Angular 失败

Posted

技术标签:

【中文标题】Azure CI/CD 管道 Angular 失败【英文标题】:Azure CI/CD pipeline Angular failing 【发布时间】:2022-01-22 01:13:06 【问题描述】:

通过我设置的新版本,我似乎无法获得可靠的 YAML 设置。

我正在尝试构建一个 Angular 项目并将其作为工件发布。

这是我所拥有的:

- script: |
    npm install -g @angular/cli
    npm install
    npm uninstall @angular-devkit/build-angular
    npm install @angular-devkit/build-angular
    ng build --prod

- task: Npm@1
  displayName: 'Build Angular'
  inputs:
    command: custom
    workingDir: 'Mpw/Mpw.Web.UI/ClientApp'
    verbose: false
    customCommand: 'run build'
    
- task: CopyFiles@2
  displayName: 'Copy dist to artifacts'
  inputs:
    SourceFolder: 'test/test.UI/ClientApp/dist'
    Contents: '**'
    TargetFolder: 'test/test.UI/ClientApp/dist'
    cleanTargetFolder: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifacts'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/Application'
    ArtifactName: 'test-uat'

但我在管道上得到以下错误输出:

2021-12-20T11:55:12.7224058Z [command]C:\Windows\system32\cmd.exe /D /S /C ""C:\Program Files\nodejs\npm.cmd" run build"
2021-12-20T11:55:18.9961043Z Node packages may not be installed. Try installing with 'npm install'.
2021-12-20T11:55:18.9961498Z 
2021-12-20T11:55:18.9962153Z Could not find the '@angular-devkit/build-angular:browser' builder's node package.
2021-12-20T11:55:18.9962748Z > client-app@0.0.0 build
2021-12-20T11:55:18.9963084Z > ng build
2021-12-20T11:55:18.9963194Z 
2021-12-20T11:55:19.1210342Z ##[warning]Couldn't find a debug log in the cache or working directory
2021-12-20T11:55:19.1215101Z ##[error]Error: Npm failed with return code: 1
2021-12-20T11:55:19.1221947Z ##[section]Finishing: Build Angular

我不确定我的 Yaml 是否 100% 正确

【问题讨论】:

【参考方案1】:

可能未安装节点包。尝试使用“npm install”进行安装。

更新节点和 Angular cli 版本 使用命令npm install npm@latest。还有npm install @angular/cli@latest

在缓存或工作目录中找不到调试日志

使用以下命令执行 npm 任务 "install gulp -g"

找不到 '@angular-devkit/build-angular:browser' 构建器 节点包。

安装@angular-devkit/build-angular 作为开发依赖。

npm install --save-dev @angular-devkit/build-angular

或者,

yarn add @angular-devkit/build-angular --dev

升级问题

    删除这些文件/文件夹(从您的 Angular 根文件夹中):

    package-lock.json不是 package.json) /node_modules文件夹 /dist文件夹

    执行命令(重新生成package-lock.json/node_modules):

    $npm install

package-lock.json 导致 npm 下载旧版本的依赖项。

【讨论】:

【参考方案2】:

我认为您缺少节点安装任务。

按照此处的安装说明进行操作:https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/javascript?view=azure-devops&tabs=code

【讨论】:

以上是关于Azure CI/CD 管道 Angular 失败的主要内容,如果未能解决你的问题,请参考以下文章

用于 Azure SQL Always Encrypted 数据库问题的 Azure DevOps CI/CD 管道

实践:基于Azure部署Jenkins服务并开发MERN应用的CI/CD构建管道

.NET Core WebJob 控制台应用程序 CI/CD 使用 Azure DevOps Pipelines

Azure 部署中心的 CI/CD 失败,因为存储库名称必须小写

带有 PostgreSQL 的 CI/CD 管道因“数据库未初始化且未指定超级用户密码”错误而失败

关于使用 CI / CD 管道的语义版本控制发布的一般问题