Bamboo - “未找到 ng 命令”

Posted

技术标签:

【中文标题】Bamboo - “未找到 ng 命令”【英文标题】:Bamboo - "ng command not found" 【发布时间】:2018-08-29 11:23:37 【问题描述】:

我最近安装了用于 Bamboo (Linux) 的 Angular-CLI。我已经验证它可以从终端运行,所以我在 Bamboo 中创建了一个脚本任务,它有一个命令:“ng build”。但每次,日志都会显示错误“ng: command not found”。 这可能是什么原因?该软件包已全局安装,如果有任何区别,则与 NPM 链接,我已重新安装它并验证缓存,我已将其路径定义为 Bamboo 中的可执行文件(命令类型,因为 Bamboo 显然不支持 Angular?)。我已确保以竹 linux 用户的身份检查该命令,它在那里工作!但由于某种原因,Bamboo 本身并没有看到它。哦,我按照推荐使用@angular/cli。 坦率地说,我很难过。任何帮助将不胜感激,我已经坚持了一段时间了。


@SSS 写入...

因为我遇到了同样的问题,所以我添加了赏金。

我在 Windows Server 上运行 Atlassian Bamboo v6.2.2,我收到此错误:

23-Apr-2020 13:49:20    + ng build --configuration=develop
23-Apr-2020 13:49:20    + ~~
23-Apr-2020 13:49:20        + CategoryInfo          : ObjectNotFound:     (ng:String) [], CommandNotFoundE 
23-Apr-2020 13:49:20       xception
23-Apr-2020 13:49:20        + FullyQualifiedErrorId : CommandNotFoundException

如果我在自己的凭据下运行 PowerShell 脚本,它运行良好。我什至添加了 npm install -g @angular/cli 到 ng build 命令之前的脚本,但这也不起作用。

我认为这只是 Bamboo 代理无法找到 ng CLI 的情况,但我无法确定它的位置。

【问题讨论】:

【参考方案1】:

嗯,很奇怪...您能否发布您的脚本配置(例如您为解释器(例如 Shell)和脚本位置(例如内联)选择了什么)?您可以做的一个选择是添加一个可执行文件(Bamboo Administration\Executables)并创建一个命令类型的可执行文件(您必须在其中指定命令的路径),然后您可以通过添加一个类型的任务来使用这个可执行文件指挥你的计划。

【讨论】:

【参考方案2】:

我发现了一个解决方法

npm run ng build ...

在脚本中,但我更喜欢 Angular CLI 工作。

【讨论】:

【参考方案3】:

当 Bamboo 代理作为服务启动时,它不一定具有与您在终端上键入 ng 时相同的 PATH 变量。特别是在 Windows 上,启动 Bamboo 代理服务的工具上有这个 long standing bug,并且在 Bamboo >= 6.10 中已解决。

为了了解正在发生的事情,只需为测试目的添加一个脚本任务到您的作业中,该任务运行类似

echo "Printing PATH"
echo $PATH
which ng
echo "End printing PATH"

在日志中,你肯定会看到打印出来的PATH和终端里的不一样。

可能的解决方法是:

在每个脚本中添加一些 export PATH=/path/to/ng:$PATH 在 Bamboo 中将 ng 添加为全局可执行文件并将其用作 $bamboo.capability.system.builder.ng 变量 在启动代理的脚本中添加 ng 的路径(在 Windows 上无法轻松运行)

请注意,ng 本身当然也可能需要找到其他程序才能正常运行。

【讨论】:

以上是关于Bamboo - “未找到 ng 命令”的主要内容,如果未能解决你的问题,请参考以下文章

从 Bamboo 构建开始 Bamboo 部署

SoapUI/Maven/Bamboo:Bamboo 作业中的异常

如何编写一个从另一个 Bamboo 计划获取内部版本号的新 Bamboo 计划?

Linux中bamboo服务端安装配置

MSBuild 脚本中的 Bamboo 变量值为空

Bamboo + Stash:请告诉我你是谁