我是咕噜声的新手。
我有一个适用于单个构建的 gruntfile。有几个目标链接在一起来完成该过程。问题是我需要使用变量数据创建几个不同的版本。我正在尝试弄清楚如何在我的 gruntfile 中执行此操作。
今天,要进行构建,我只需要运行
grunt --foo=bar build
or
grunt --foo=baz build
我想要并且尝试做的是创建一个使用数组来定义 foo 数据的构建所有目标,如下所示:
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”,运行两次以获得相同的值。
在这种情况下有更好的方法来设置参数/选项吗?或者以阻塞方式运行任务?
我最近遇到了同样的问题,并写道咕噜镀锌 https://github.com/dylancwood/grunt-galvanize.git来帮助解决这个问题。以下是它的工作原理,应用于您的示例:
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']);
});
这将运行build任务与指定的每个选项/配置galvanizeConfig
.
附言。对于需要并发的情况,我也会使用 grunt-multi,但对于不需要并发的情况,grunt-galvanize 是一个更简单的工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)