如何删除与 Grunt 中的正则表达式匹配的文件?

How to remove file that matches regex in Grunt?

如何编写一个任务来删除特定文件夹中符合正则表达式的文件?

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

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

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

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

即"filename-good-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. 的提示。

您可以使用grunt-contrib-clean根据您给定的规则删除files/folders。

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