Angular CLI VSO持续集成

时间:2017-01-12 14:35:18

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

我过去为Angular2项目设置了使用npm命令的CI,但是我最近开始使用Angular-CLI,它使用了'ng'命令。

当我尝试在Visual Studio Online中为我的项目设置CI时,我找不到执行'ng'命令的方法。

我尝试过运行NPM命令(使用目录中的npm任务)来安装CLI; npm install -g angular-cli,之后运行npm install。现在运行'ng build'我试图使用命令行工具运行(因为似乎没有允许我运行ng命令的工具),但是没有说ng不是可识别的命令。< / p>

有关使用VSO为Angular-CLI项目设置CI的任何建议吗?

由于

3 个答案:

答案 0 :(得分:12)

如果您希望您的构建定义在任何构建代理(托管代理和任何内部代理)上运行,您可以依赖本地安装的 angular-cli npm 没有 -g标志:

>npm install angular-cli

默认情况下,npm会在.\node_modules\.bin\下安装&#39;

您的构建定义可以使用'npm install'任务在本地安装&#39; ,然后您可以通过'Command Line'任务调用它,因为您知道它的路径(例如$(Build.SourcesDirectory)\node_modules\.bin)。

创建新项目并使用&#39; 构建新项目的构建定义示例:

  • 在本地安装&#39; ng&#39; cli工具:

npm install arguments

  • 创建项目&#39; helloworldproject&#39;: ng new project

  • 建立项目&#39; helloworldproject&#39;: ng build project

==更新(以编程方式检索实际二进制路径&#39; npm bin&#39;)==

要删除放置二进制文件并具有更具弹性的构建定义的假设,您可以使用以下命令以编程方式检索 npm 使用的实际二进制路径:

>npm bin

以下示例(这次是简短的PowerShell脚本)展示了如何创建&#39; helloworldproject&#39;然后建立它: powershell script to run ng tool

记住:

  • 禁用选项&#39;标准错误失败&#39;在PowerShell任务中,因为ng工具喜欢在那里写东西,即使它成功了。
  • 当然,在使用&#39; 工具之前,您仍然需要上面显示的&nbsp; npm install&#39; 任务。< / LI>

答案 1 :(得分:2)

我目前正在经历同样的事情,所以感到痛苦。 您可能必须创建自己的构建服务器,无论是作为Azure上的VM还是内部部署。原因是angular-cli不是目前托管构建服务器的功能之一。

当你创建自己的时候,你仍然会遇到一些障碍。当您在全局安装angular-cli时,它仍将它放在AppData文件夹下,供您安装它的用户使用。如果您已将代理设置为以不同的用户身份运行,例如NetworkService,那么对于该服务帐户,“ng”将不在路径中。它可能也没有权限运行它,因为angular-cli已经安装在用户的文件夹下,而且没有权限。

好的,所以你用同一个用户运行代理,或者你解决了权限和路径问题,你可能仍会遇到问题。如果您使用powershell脚本任务作为执行“ng build”的构建任务之一,那么您将遇到我在此处突出显示的问题:

https://github.com/angular/angular-cli/issues/3979

因此看起来我们可能不得不求助于命令行构建任务。 希望这可以帮助。我花在这上面的最后两天也可以帮助其他人。

答案 2 :(得分:0)

关于Angular2-CLI命令行,它使用ng2而不是ng。 (Angular-CLI使用ng),因此您的命令不正确。

请参阅以下步骤以验证ng2命令(适用于托管代理):

  1. 添加NPM构建步骤(npm命令:install; arguments:angular2-cli -g)
  2. 添加命令行步骤(工具:ng2;参数: - 版本)
  3. 如果您正在使用具有网络服务的内部部署构建代理,请改为使用以下步骤:

    1. NPM构建步骤(npm命令:install;参数:angular2-cli -g)
    2. 命令行步骤(工具:C:\ Windows \ ServiceProfiles \ NetworkService \ AppData \ Roaming \ npm \ ng2.cmd; Argumetns: - version)
    3. 对于具有用户帐户的内部部署构建代理,您可以登录该计算机并安装Angular2-CLI命令行(在构建期间不需要安装它)。