如何确保grunt仅选择文件(而不是文件夹)?

时间:2014-01-19 17:04:06

标签: gruntjs grunt-contrib-concat

我正在尝试将项目中的所有JS库连接到一个文件中。所以我在grunt中设置了concat任务,使用以下文件选择器:

dist : {
  src  : ["public/lib/**/*.js"],
  dest : "public/lib.concat.js"
}

到目前为止一切顺利。但是,我们在项目中使用sprintf.js。因此sprintf.js内有一个public/lib目录,该目录由grunt中的src选择器匹配。

结果是:

$ grunt
Running "concat:dist" (concat) task
Warning: Unable to read "public/lib/sprintf.js" file (Error code: UNKNOWN). Use --force to continue.

我知道我可以为sprintf.js目录选择一个不同的名称,但我想知道是否有办法告诉grunt只选择实际文件,而不是目录。

2 个答案:

答案 0 :(得分:4)

使用filter option忽略目录:

dist : {
  src  : ["public/lib/**/*.js"],
  dest : "public/lib.concat.js",
  filter: function(filepath) {
    return !grunt.file.isDir(filepath);
  }
}

答案 1 :(得分:0)

它应该更容易。你可以用感叹号指针排除:

dist : {
  src  : ["public/lib/**/*.js", "!public/lib/sprintf.js" ],
  dest : "public/lib.concat.js"
}