gpt4 book ai didi

gruntjs - Grunt 任务配置中的 ForEach

转载 作者:行者123 更新时间:2023-12-01 11:39:42 24 4
gpt4 key购买 nike

我正在研究 Gruntfile 配置。我需要遍历所有匹配的文件我的模板变量中定义的模式如下所示:

module.exports = {
templates: {
all: ['src/templates/**/*.html*’]
}
};

我需要将这些文件中的每一个用作我在此处定义的“swapper”目标上名为“files”的数组中的值:

task-config :{
swapper : {
files: {
// foreach (file in templates) {
// ‘destination/‘ + “‘“ + file.ToString() + “‘“ : ‘file.ToString()’
// if (isNotLastFile()) {
// appendComma()
// }
// }
},
tasks: ['jshint:ignore_warning:test' ],
options: {
encodeSpecialChars: true
}
}
}

我很难让语法正确。甚至可以做我在 Grunt 中尝试的事情吗?或者,我需要换一种方式吗?

谢谢

最佳答案

IIFEs 非常适合这个(尽管有些人认为,Gruntfiles 是 javascript 并且使用 Node.js 编写):

"task-config": {
swapper : {
files: (function() {
var templates = require('./templates.js').templates;
var out = {};
Object.keys(templates).forEach(function(key) {
var val = templates[key];
// Do something with key/val to determine the dest/src
var dest = 'destination/' + someHowDetermineYourDestination(val);
out[dest] = val;
});
// Return the computed object
return out;
}())
},
},

查看这篇文章以获取有关 IIFE 的更多信息:http://benalman.com/news/2010/11/immediately-invoked-function-expression/

虽然您可能不需要 IIFE。而只是使用 expand 选项:

"task-config": {
swapper : {
expand: true,
cwd: 'src/templates/',
src: ['**/*.html'],
dest: 'destination/',
},
},

这将对 src/templates 中的每个文件运行任务并输出,包括 destination/ 文件夹的子文件夹。

有关更多信息,请参阅 Grunt 文档的这一部分:http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

关于gruntjs - Grunt 任务配置中的 ForEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619153/

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