gpt4 book ai didi

gruntjs - 如何在动态更改配置中的数据时在 for 循环中运行 grunt 任务?

转载 作者:行者123 更新时间:2023-12-02 04:40:52 25 4
gpt4 key购买 nike

我试图在 grunt 中运行一个任务,它转到一个 URL 并将响应保存在一个文件中,但我希望它转到不同的 URL 并相应地生成不同的文件。所以我正在运行一个循环,并在每次迭代时更改配置中的数据。但是任务运行附加在循环的末尾,所以当循环完成更改配置中的所有值时,它会使用配置中最新更改的值运行任务 30 次,最后一次又一次地只创建 1 个文件 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");
}
});
};

最佳答案

我不是 100% 确定您要尝试做什么,但这段代码应该有效。您需要为要运行的每个 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");
};

关于gruntjs - 如何在动态更改配置中的数据时在 for 循环中运行 grunt 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37749675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com