【问题标题】:Angular Application Build pipeline - Continuous Integration in VSTSAngular 应用程序构建管道 - VSTS 中的持续集成
【发布时间】:2020-10-19 09:25:57
【问题描述】:

实际上,我需要将我的 Angular 应用程序部署到 Azure。老实说,这是我第一次使用 Angular 应用程序进行部署。所以我选择的是带有 Grunt 模板的 Node。

步骤如下

steps:
- task: Npm@1
  displayName: 'npm install'
  inputs:
    workingDir: CrSPA/Clientapp
    verbose: false
steps:
- task: Npm@1
  displayName: 'Build Project'
  inputs:
    command: custom
    workingDir: CrSPA/Clientapp
    verbose: false
    customCommand: 'run build-prod'

run build-prod 表示 ng build --prod

我的问题是它是正确的方法。我问这个是因为当应用程序发生小的变化时,整个 npm 安装过程都会发生并且需要很长时间才能完成。所以我不确定我遵循的方式是最好的方式。

最好在本地构建后推送?也可以将 node_modules 文件夹也推送到存储库中,所以我不能总是执行 npm install 吗?

【问题讨论】:

  • 嗨@Sandeep Thomas。这个问题有更新吗?如果答案可以给你一些帮助,请随时告诉我。只是提醒this

标签: angular azure azure-devops continuous-integration azure-pipelines


【解决方案1】:

您的方法很好,在文件进入 repo 之前,您应该始终在管道上执行 npm ing build --prod

这是因为当多人在同一个应用程序上工作时,如果他们添加一个新的package,如果你不做npm install,你的管道构建将会失败。所以总是建议这样做

1. npm install
2. ng build --prod

你可以阅读更多关于这个article

【讨论】:

    【解决方案2】:

    其实在部署的时候做依赖是个好习惯,

    您可以在包 json 中轻松指定和更改您所依赖的这些包的版本,这样您部署的环境就不会出现任何问题,并且您的构建将使用 JSON 文件中列出的确切包版本。

    另外,最好使用 npm ci 而不是 npm i,因为它使用具有确切版本号的包锁定文件,因此您将始终使用完全正确的版本.

    这里很好地解释了为什么你不应该在提交和构建时包含node_modules

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多