1. 程式人生 > >Grunt學習筆記【3】---- filter詳解

Grunt學習筆記【3】---- filter詳解

add 行處理 class 一個 特殊 col filter詳解 很多 https

本文主要講配置任務中的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

Grunt學習筆記【3】---- filter詳解