Gruntfile.jspath中的“{,* /}”是什么意思?
在Gruntfile.js
,我有:
watch: { styles: { files: [ '<%= yeoman.app %>/styles/{,*/}*.less' ], tasks: ['copy:styles', 'autoprefixer'] } }
对于path, {,*/}
是什么意思呢? 如何使用双星号**/
?
这种模式在yeoman模板中被广泛使用:这意味着在文件夹层次结构中只能查看一个层次。 它主要用于性能的原因,因为同时观看太多的文件可能会很慢(甚至不可能)。
这些是Grunt的globbing模式 ,由node-glob和minimatch库支持。
基本上:
-
*
匹配任意数量的字符, 但不是/
-
**
匹配任意数量的字符, 包括/
,只要它是path部分中唯一的字符 -
{}
允许使用逗号分隔的“或”expression式列表
所以, styles/{,*/}*.less
。less与以下文件相匹配:
-
styles
目录中的LESS文件 - LESS文件在
styles
目录的直接子目录内(但不是更深)
我相信你在那里使用一个迷你模式 。
双星号是一个导致recursion到子目录的glob。
单个星号只匹配当前目录中的0个或更多个字符(匹配除斜杠字符以外的每个字符)。
例如,/ ** / d将匹配a / b / c / d。
答案是globbing-patterns 。
其他答案已经回答了{,*/}*
意思。
但**/
和{,*/}*
之间的差异是文件夹深度 。
-
/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
可以做到这一点