1

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

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

到目前为止,一切都很好。但是,我们在项目中使用sprintf.js。所以里面有一个sprintf.js目录,该目录与grunt 中public/lib的选择器匹配。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 只选择实际文件,而不是目录。

4

2 回答 2

4

使用过滤器选项忽略目录:

dist : {
  src  : ["public/lib/**/*.js"],
  dest : "public/lib.concat.js",
  filter: function(filepath) {
    return !grunt.file.isDir(filepath);
  }
}
于 2014-01-19T17:08:31.927 回答
0

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

dist : {
  src  : ["public/lib/**/*.js", "!public/lib/sprintf.js" ],
  dest : "public/lib.concat.js"
}
于 2014-01-19T18:59:08.567 回答