我正在将 Powershell 构建脚本迁移到 Cake 脚本,之前我会在找到 Bower.json 文件的目录集合上运行以下命令:
foreach ($directory in (Get-CommonPath $bowerDirs)) {
Push-Location $directory
&bower install
Pop-Location
}
但是由于 Bower 似乎没有蛋糕别名,我正在努力弄清楚应该如何使用 Cake 来执行此操作(&bower install
)。
更新 根据@garyewanpark的回答,我尝试了以下操作
Task("BowerInstall")
.Does(() => {
var bowerRoots = GetBowerRoots();
foreach (var bowerRoot in bowerRoots.Select(x => x.FullPath))
{
try
{
var exitCodeWithArgument = StartProcess("bower", new ProcessSettings {
Arguments = "install",
WorkingDirectory = bowerRoot
});
Information("Exit code: {0}", exitCodeWithArgument);
}
catch (Exception ex)
{
Information($"Failed on {bowerRoot}, {ex.Message}");
}
}
});
但这为尝试的每个路径提供了以下错误消息
Failed on C:/Projects/dev/WebUI, The system cannot find the file specified
如果使用命令提示符在目录中运行 Bower install,则它会成功运行
下面描述了正在运行的目录结构。 单个 git 分支中有多种解决方案。每个解决方案可以包含多个项目,有些项目有一个 Bower.json 文件。 GetBowerRoots() 方法返回包含 Bower.json 文件的目录的 DirectoryPathCollection。
c:\
- Projects
- Branch
- build.ps1
- build.cake
- Sol1
- Proj1
- Misc proj files
- bower.json
- Sol2
- Proj2
- Misc proj files
- bower.json
最佳答案
Cake.Bower Addin 现已创建,可以从此处下载:
关于c# - 如何使用 Cake 安装 Bower 软件包 (http ://cakebuild.net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45678163/