我正在尝试在grunt中运行任务,它转到URL并将响应保存在文件中,但我希望它转到不同的URL并相应地生成不同的文件。 所以我正在运行一个循环,并在每次迭代时更改config中的数据。 但是任务运行会在循环结束时附加,因此当循环完成时,更改config中的所有值,它会使用配置中最新更改的值运行任务30次,最后一次又创建30次文件。 这是我的代码
module.exports = function(grunt){
grunt.initConfig({
id:0,
http:{
devel:{
options: {
url: 'http://127.0.0.1:8000/foo/<%= id %>/'
},
dest: 'www/foos/foo<%= id %>.json'
}
}
});
grunt.loadNpmTasks('grunt-http');
grunt.registerTask("default", function(){
for (var i = 30; i > 1; i--) {
grunt.config.set("id", i);
var d = grunt.config.get("id");
grunt.log.writeln("id = "+d);
grunt.task.run("http");
}
});
};
答案 0 :(得分:0)
我不是百分之百确定你要做的是什么,但这段代码应该可行。您需要为要运行的每个http任务创建唯一任务。
module.exports = function(grunt){
grunt.initConfig({
http:{
}
});
grunt.loadNpmTasks('grunt-http');
var http = {};
for (var i = 5; i > 1; i--) {
grunt.log.writeln("id = " + i);
http['devel' + i] = {
options: {
url: 'http://127.0.0.1:8000/foo/' + i
},
dest: 'www/foos/foo' + i + '.json'
};
}
grunt.config.set("http", http);
grunt.registerTask("default", "http");
};