无法从VSTS代理运行'ng'

时间:2017-09-04 09:22:51

标签: build azure-devops angular-cli

我正在尝试使用托管的VSTS构建代理对我们的AngularCLI项目运行单元测试,但是当它尝试运行'ng test'时它一直遇到麻烦。

要解决此问题,我尝试通过提供工具的路径,使代理直接使用ng工具。这没有用,因为看起来它试图运行'ng test'工具而不是在指定的当前工作目录中:

enter image description here

enter image description here

我还尝试将其添加为Windows中的环境变量(我们使用Windows Server 2012来托管VSTS代理)并将VSTS代理中的工具设置为will-change: transform; ,但它没有'似乎找到了ng工具:

enter image description here enter image description here

如何让VSTS代理使用ng工具运行测试?我们在托管代理的服务器上安装了@ angular / cli。

2 个答案:

答案 0 :(得分:8)

问题是你没有在VSTS上全局安装angular cli,因为它的构建服务器不支持它。但是你甚至不需要在代理上全局安装cli。

您只需要npm run ng build -- prod - 这样它将始终运行本地版本。另外,这样您根本不需要更新全局包。

使用npm run ng test运行测试,npm run ng e2e运行量角器。如果您需要将更多参数传递给其中任何一个,请使用--

答案 1 :(得分:0)

如@Kuncevic所述,要在不全局安装的情况下使用Angular CLI,您将需要使用npm run命令。

要使用Azure Devops运行Angular构建,请执行以下操作:

  1. 添加npm任务以安装依赖项(为命令选择install
  2. 添加另一个npm任务,但为命令选择custom。然后添加您的command and arguments

run ng -- build --output-path=dist --configuration=prod

请注意npm不属于command and arguments的一部分,因为它将由任务提供。还请注意--如何分隔要运行的命令和要传递给该命令的参数。