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時通配符支持和動態生成文件名問題,希望對大家有所幫助。