copy: { // 这是Task里的其中一个Target dests: { expand: true, cwd: '<%=config.app%>/newFolder', src: ['**/{a*,b*}.html'], dest: '<%=config.dist%>/newFolder', ext: ".shtml", extDot: "first", flatten:true, //去掉中间上当,下面的rename可以再找回来 rename: function( dest, fileName ) { return dest + "/" +fileName; } } }
通配符支援:由nodejs內建的node-glob函式庫支持,這些都可以用在上面所說的各種檔案配置
1、*符合任何字符,除了/
2、?匹配單一字符,除了/
3、**匹配任何字符,包括/,所以用在目錄路徑裡面
4、{}逗號分割的「或」操作(逗號後面不要有空格)
5、! 排除某個符合
動態產生檔名:
expand 設定為true開啟以下選項,如果設為true,就表示下面檔名的佔位符(即*號)都要擴充成具體的檔名。
cwd 所有src指定的檔案相對於這個屬性指定的路徑,需要處理的檔案(input)所在的目錄
src 要符合的路徑,相對與cwd,表示需要處理的檔案。如果採用數組形式,數組的每一項就是一個檔名,可以使用通配符
dest 產生的目標路徑前綴,表示處理後的檔案名稱或所在目
ext 表示處理後的檔案後綴名。將所有產生的目標檔案後綴取代為這個屬性
extDot:first:表示以檔案名稱後的第一點後面開始作為後綴名;last:表示以檔案名稱後的最後一點後面開始作為後綴名稱
flatten:刪除所有產生的dest的路徑部分,值為boolean類型(true、false)用來指定是否保持檔案目錄結構,true是保持檔案目錄
rename 一個函數,接受符合的檔名,和符合的目標位置,回傳一個新的目標路徑
以上就是本文跟大家介紹的在設定Grunt的Task時通配符支援和動態產生檔名問題,希望對大家有幫助。