通过自定义 Grunt 任务处理文件
Process files by custom Grunt task
我是 grunt 的新手...我只是尝试实现一个自定义任务(使用 TypeScript
),该任务将遍历一组给定的文件并进行一些处理。这是我目前所拥有的...
function gruntFile(grunt: IGrunt): void {
grunt.registerMultiTask("custom", "...", () => {
this.files.forEach(function(next) {
...
});
});
var config: grunt.config.IProjectConfig = {
custom: {
files: [
"folder1/*.json",
"folder2/**/*.json"
]
}
};
grunt.initConfig(config);
}
(module).exports = gruntFile;
目前,我正在为配置以及如何在我的自定义任务处理程序函数中访问文件数组而苦恼。 Grunt 给我的错误是它无法读取未定义的 属性 forEach
。我也尝试了一个看起来像这样的配置...
var config = {
custom: {
files : [
{ src: "folder1/*.json" },
{ src: "folder2/**/*.json" }
]
}
};
不确定,但我在一些教程中看到过...
我已经看过几个示例 grunt 文件,但是在每个示例中配置看起来有点不同,或者文件与导入的任务和模块一起使用,所以示例没有显示配置文件的方式被访问。任何有助于我更好地理解其工作原理(以及我做错了什么)的指导都将受到赞赏。
更新
我发现我可以通过 config-属性 查询选项,但我不确定这是否是正确的方法。在我的任务处理程序中,我这样做是为了查询已配置文件的列表...
var files = grunt.config.get("custom.files");
...which returns 预期的数组(但我发现通过路径表达式查询选项有点奇怪)。我意识到(通过使用 TypeScript
)this
的范围不是当前任务的上下文;这就是为什么 files
总是未定义的原因。将对 registerMutliTask
的调用更改为...
grunt.registerMultiTask("custom", "...", function() { ... });
...解决了这个问题。我在路径表达式中使用通配符;我希望 Grunt 可以扩展这些表达式并给我一个所有匹配路径的列表。此功能是否存在,还是我必须自己创建?
我能够使用以下代码迭代配置的文件(文件模式)...
grunt.registerMultiTask("custom", "...", function() {
grunt.file
.expand(this.data)
.forEach(function(file) {
...
});
});
我是 grunt 的新手...我只是尝试实现一个自定义任务(使用 TypeScript
),该任务将遍历一组给定的文件并进行一些处理。这是我目前所拥有的...
function gruntFile(grunt: IGrunt): void {
grunt.registerMultiTask("custom", "...", () => {
this.files.forEach(function(next) {
...
});
});
var config: grunt.config.IProjectConfig = {
custom: {
files: [
"folder1/*.json",
"folder2/**/*.json"
]
}
};
grunt.initConfig(config);
}
(module).exports = gruntFile;
目前,我正在为配置以及如何在我的自定义任务处理程序函数中访问文件数组而苦恼。 Grunt 给我的错误是它无法读取未定义的 属性 forEach
。我也尝试了一个看起来像这样的配置...
var config = {
custom: {
files : [
{ src: "folder1/*.json" },
{ src: "folder2/**/*.json" }
]
}
};
不确定,但我在一些教程中看到过...
我已经看过几个示例 grunt 文件,但是在每个示例中配置看起来有点不同,或者文件与导入的任务和模块一起使用,所以示例没有显示配置文件的方式被访问。任何有助于我更好地理解其工作原理(以及我做错了什么)的指导都将受到赞赏。
更新
我发现我可以通过 config-属性 查询选项,但我不确定这是否是正确的方法。在我的任务处理程序中,我这样做是为了查询已配置文件的列表...
var files = grunt.config.get("custom.files");
...which returns 预期的数组(但我发现通过路径表达式查询选项有点奇怪)。我意识到(通过使用 TypeScript
)this
的范围不是当前任务的上下文;这就是为什么 files
总是未定义的原因。将对 registerMutliTask
的调用更改为...
grunt.registerMultiTask("custom", "...", function() { ... });
...解决了这个问题。我在路径表达式中使用通配符;我希望 Grunt 可以扩展这些表达式并给我一个所有匹配路径的列表。此功能是否存在,还是我必须自己创建?
我能够使用以下代码迭代配置的文件(文件模式)...
grunt.registerMultiTask("custom", "...", function() {
grunt.file
.expand(this.data)
.forEach(function(file) {
...
});
});