我正在尝试将项目中的所有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只选择实际文件,而不是目录。
答案 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"
}