2014-01-19 39 views
1

我想將我們項目中的所有JS庫連接成一個文件。所以我成立了一個咕嚕任務concat,具有以下文件選擇:如何確保grunt只選擇文件(不是文件夾)?

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

到目前爲止好。但是,我們在我們的項目中使用了sprintf.js。因此,在public/lib內部有一個sprintf.js目錄,該目錄與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目錄選擇一個不同的名字,但我想知道是否有一種方法來告訴咕嚕只選擇實際的文件,而不是目錄。

回答

4

使用filter option忽略目錄:

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

我想要匹配子目錄。我只是想讓它讀取目錄'sprintf.js'內的文件。但咕嚕聲試圖讀取目錄,就好像它是一個文件一樣。 –

+0

我更新了我的答案,檢查是否可行 –

+1

完美。謝謝 :) –

0

它應該是更容易。你可以用一個感嘆號指針排除:

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