Grunt学习笔记【3】---- filter详解

本文主要讲配置任务中的filter,包括使用默认fs.Stats方法名和自定义过滤函数。

通过设置filter属性可以实现一些特殊处理逻辑。例如:要清理某个文件夹下的所有空文件夹,这时使用clean任务时,需要判断该文件夹下的哪些是文件,哪些是文件夹,只对空文件执行clean任务。

具体使用方法分为如下两种:

一 使用fs.Stats方法作为过滤函数

fs.stats是NodeJS的一个类,上边提供了很多对文件判断的方法,具体可以参考这里

如下将filter设置为'isFile'时,如果发现当前文件不是文件时,就不进行clean处理。

1 grunt.initConfig({
2   clean: {
3     foo: {
4       src: ['tmp/**/*'],
5       filter: 'isFile',
6     },
7   },
8 });

二 自定义过滤函数

自定义过滤函数,如果过滤函数返回true,就对当前文件进行处理;返回值是false时,就不处理当前文件。

下边示例是清理tmp下边所有的空文件夹:

 1 grunt.initConfig({
 2   clean: {
 3     foo: {
 4       src: ['tmp/**/*'],
 5       filter: function(filepath) {
 6         return (grunt.file.isDir(filepath) && require('fs').readdirSync(filepath).length === 0);
 7       },
 8     },
 9   },
10 });

参考资料&内容来源:

Grunt官网:https://www.gruntjs.net/configuring-tasks

猜你喜欢

转载自www.cnblogs.com/zhaoweikai/p/9713528.html