通过自定义Grunt任务处理文件
Process files by custom Grunt task
我是新手…我只是试图实现一个自定义任务(使用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
的undefined。我还尝试了一个配置,看起来像这样…
var config = {
custom: {
files : [
{ src: "folder1/*.json" },
{ src: "folder2/**/*.json" }
]
}
};
不确定,但我在一些教程中看到过……
我已经看到了几个示例grunt-文件,但是在每个示例中,配置看起来有点不同,或者文件与导入的任务和模块一起使用,因此示例没有显示如何访问配置的文件。任何帮助我更好地理解它是如何工作的(以及我做错了什么)的指导都是感激的。
我发现我可以通过config-property查询选项,但我不确定这是否是正确的方法。在我的任务处理程序中,我这样做是为了查询配置文件的列表…
var files = grunt.config.get("custom.files");
…它返回预期的数组(但我发现通过路径表达式查询选项有点奇怪)。我意识到(通过使用TypeScript
) this
的范围不是当前任务的上下文;这就是为什么files
总是未定义的原因。将对registerMutliTask
的调用更改为…
grunt.registerMultiTask("custom", "...", function() { ... });
…修复了这个问题。我在路径表达式中使用通配符;我希望Grunt可以扩展这些表达式,并给我一个所有匹配路径的列表。这个功能存在吗,还是我必须自己创建?
通过使用以下代码,我能够遍历配置的文件(文件模式)…
grunt.registerMultiTask("custom", "...", function() {
grunt.file
.expand(this.data)
.forEach(function(file) {
...
});
});
相关文章:
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 我如何处理文件上传
- 在Node Webkit应用程序中从DOM单击按钮时运行批处理文件
- 如何在 Javascript 中上传和处理文件
- Jsfidle无法处理文件
- 执行批处理文件的Javascript,该文件包含基于每个会话的环境变量设置
- Windows批处理文件,使用文件中的行在命令中构造参数
- GulpJS任务在文件更改时自动缩小
- 上传到FTP之前预处理文件
- 使用JavaScript的Google Drive:处理文件内容
- 如何从批处理文件调用一个带有2个参数的java脚本函数,并将结果返回到环境变量
- 从批处理文件访问JavaScript方法
- 使用批处理文件运行咕噜声构建
- 如何在 JavaScript 中逐个执行批处理文件
- 使用 Javascript 运行批处理文件 - Firefox
- 仅对 Gulp 任务中文件夹中的文件子集使用 Browserify
- 创建自定义的 Grunt 任务来处理文件
- Gulp任务处理可写文件
- 通过自定义Grunt任务处理文件
- Grunt useminPrepare和usemin无法处理多个任务和文件(concat失败)