在Gruntfile.js
,我得到了:
watch: {
styles: {
files: [
'<%= yeoman.app %>/styles/{,*/}*.less'
],
tasks: ['copy:styles', 'autoprefixer']
}
}
对于路径,{,*/}
确实意味着什么?它与使用双星号**/
有什么不同?
答案 0 :(得分:28)
这些是Grunt的 globbing patterns ,受 node-glob 和 minimatch 库的支持。
基本上:
*
匹配任意数量的字符,但不是 /
**
匹配任意数量的字符包括 /
,只要它是路径部分中的唯一内容{}
允许以逗号分隔的&#34;或&#34;表达式强> 因此,styles/{,*/}*.less
匹配以下文件:
styles
目录styles
目录的直接子目录中的LESS文件(但没有更深)答案 1 :(得分:14)
此模式在yeoman模板中广泛使用:它意味着只查看文件夹层次结构中的一个级别。它主要用于性能原因,因为同时观看太多文件可能很慢(甚至不可能)。
答案 2 :(得分:11)
我相信你在那里使用minimatch pattern。
双星号是一个导致递归到子目录的glob。
单个星号仅匹配当前目录中的0个或多个字符(它匹配除斜杠字符以外的每个字符)。
例如,/ ** / d将匹配a / b / c / d。
答案 3 :(得分:1)
其他答案已经回答了{,*/}*
的含义。
但**/
和{,*/}*
之间的差异是文件夹深度。
/styles/{,*/}*.less
已分为两种情况
/styles/*.less
/styles/*/*.less
例如
/styles/{,*/}*.less
将匹配/styles/x.less
(情况1)
/styles/{,*/}*.less
也会匹配/styles/test/x.less
(情况2)
但/styles/{,*/}*.less
无法匹配/styles/test/test1/x.less
但是/styles/**/*.less
可以做到这一点