如何在Grunt中删除与regex匹配的文件?

时间:2015-07-29 13:52:18

标签: javascript regex gruntjs

如果匹配正则表达式,如何编写将删除特定文件夹中文件的任务?

假设我们有文件夹&some;' somedir'和其中的几个文件:

somedir/filename.txt
somedir/filename-good-0.0.1.txt
somedir/filename-0.0.2.txt

我想要一个删除此文件夹中与此模式匹配的所有文件的任务:

/.+-\d+\.\d+\.\d+\.txt/

即。 "文件名良好-0.0.1.txt"和" filename-0.0.2.txt"

有可能吗?

解决方案: 这是Grunt的配置:

clean: {
  mytask: {
    src: [ 'somedir/*.txt' ],
    filter: function(filepath) {
      var regex = /.+-\d+\.\d+\.\d+\.txt/g;
      return regex.test(filepath);
    }
  }
}

感谢Ludovic V.提示。

2 个答案:

答案 0 :(得分:1)

您可以使用自定义过滤器功能,如下所述:http://gruntjs.com/configuring-tasks#custom-filter-function和Javascript中的match函数字符串。

答案 1 :(得分:0)

您可以使用grunt-contrib-clean根据您提供的规则删除文件/文件夹。