Grunt Run in a For Loop
Grunt Run in a For Loop
我是个新手。
我有一个适用于单个构建的gruntfile。有几个目标被链接在一起以完成该过程。问题是,我需要使用可变数据创建几个不同的构建。我正试图在我的咕哝文件中找出如何做到这一点。
今天,要进行构建,我只需要运行
grunt --foo=bar build
或
grunt --foo=baz build
我想要并且已经尝试过的是创建一个使用数组定义foo数据的build-all目标,如下所示:
grunt.registerTask('build-all', function() {
var foos = ["bar", "baz"];
for (var i in foos) {
grunt.config.set("foo", foos[i]);
grunt.task.run("build");
}
});
从外观上看,运行任务似乎是非阻塞的。这意味着"foo"在第一次运行之前被设置为"baz",为相同的值运行两次。
在这种情况下,有没有更好的方法来设置参数/选项?或者以阻塞的方式运行任务?
我最近遇到了同样的问题,并写了grunt镀锌来帮助解决这个问题。以下是它的工作原理,应用于您的示例:
grunt.registerTask('build-all', function() {
var foos = ["bar", "baz"];
var galvanizeConfig = [];
for (var i in foos) {
galavanizeConfig.push({configs: {foo: foos[i]}});
}
grunt.option('galvanizeConfig', galvanizeConfig);
grunt.task.run(['galvanize:build']);
});
这将使用galvanizeConfig
中指定的每个选项/config运行构建任务。
PS。对于需要并发性的情况,我也使用grunt multi,但对于不需要并发的情况,grunt镀锌是一个简单得多的工具。
相关文章:
- jQuery setTimeOut: in for-loop
- javascript/angularjs 将 String 与 number for loop 连接起来
- JavaScript for loop
- Native/$q Javascript For Loop Promise Resolve
- Javascript / Openlayers for loop不起作用
- for loop inside another for loop javascript (jquery)
- Json "for" loop
- 如何使用$q promise同步执行FOR LOOP
- JavaScript for loop "document.getElementById"
- Javascript Generic For Loop
- JavaScript For Loop - 执行终止条件
- 在 for loop JavaScript 中添加数字
- New to Javascript - For Loop
- MongoDB For Loop更新错误的用户
- javascript for loop won't iterate
- Javascript for loop产生意想不到的结果
- for loop, Math.random() 不按预期运行
- Javascript:for loop获取数据,但顺序被破坏了
- 有一些JavaScript问题,for loop.将数字转换为其字符串值
- JavaScript for-loop:如何让我的数字转换器工作