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时通配符支持和动态生成文件名问题,希望对大家有所帮助。
新闻热点
疑难解答