我在过去为Angular2项目设置了CI,这些项目使用npm命令,但是我最近开始使用Angular2,它使用的是'ng‘命令。
当我试图在中为我的项目设置CI时,我找不到执行'ng‘命令的方法。
我试着运行NPM命令(使用目录中的npm任务)来安装CLI;npm安装-g角-cli,然后运行。现在,要运行“ng build”,我尝试使用命令行工具(因为似乎没有一个允许我运行ng命令的工具),但是这不能说明ng不是公认的命令。
对使用VSO建立角-CLI项目的CI有何建议?
谢谢
发布于 2017-01-14 19:15:47
如果您希望您的构建定义在任何构建代理上运行(托管的构建代理和任何前提代理),您可以依赖在本地安装带有npm的角-cli,不带 -g标志:
>npm install angular-cli默认情况下,npm将在.\node_modules\.bin\下安装“ng”
您的构建定义可以使用“'npm安装”任务在本地安装'ng',然后您可以通过“指挥线”任务调用它,因为您知道它的路径(例如$(Build.SourcesDirectory)\node_modules\.bin)。
生成定义创建新项目并使用“ng”构建项目的示例



==Update (用“npm”以编程方式检索实际二进制路径)==
要删除放置二进制文件并具有更强弹性的构建定义的假设,可以使用以下命令以编程方式检索npm使用的实际二进制路径:
>npm bin下面的示例(这次是一个简短的PowerShell脚本)展示了如何创建“helloworldproject”并随后构建它:

请记住:
发布于 2017-01-13 02:42:41
我现在正在经历同样的事情,所以感受到你的痛苦。您可能必须创建自己的构建服务器,无论是在蔚蓝上还是在前提下作为VM。造成这种情况的原因是,角-cli目前并不是宿主构建服务器的功能之一。
当你创建你自己的,你仍然会遇到一些障碍。当您全局安装角-cli时,它仍然将它放在安装它的用户的AppData文件夹下。如果您已经将代理设置为以不同用户的身份运行(例如,NetworkService ),那么该服务帐户的"ng“将不会出现在路径中。它也可能没有运行它的权限,因为角-cli已经安装在用户的文件夹下,它将没有权限。
好的,那么您使用同一个用户运行代理,或者解决权限和路径问题,您可能仍然会遇到问题。如果您使用powershell脚本任务作为您的构建任务之一来执行"ng build“,那么您将遇到我在这里强调的问题:
https://github.com/angular/angular-cli/issues/3979
因此,看起来我们可能不得不求助于命令行构建任务。希望这能有所帮助。在过去的两天里,我花在这件事上,也许还能帮助别人。
发布于 2017-01-13 08:18:12
对于Angular2-CLI命令行,它使用ng2而不是ng。(角-CLI使用ng),因此您的命令不正确。
请参阅以下步骤来验证ng2命令(工作在托管代理上):
如果您在网络服务中使用,请使用以下步骤:
在使用用户帐户的前提下,您可以登录该计算机并安装Angular2-CLI命令行(在构建过程中不需要安装它)。
https://stackoverflow.com/questions/41615804
复制相似问题