Gruntfile.jspath中的“{,* /}”是什么意思?

Gruntfile.js ,我有:

 watch: { styles: { files: [ '<%= yeoman.app %>/styles/{,*/}*.less' ], tasks: ['copy:styles', 'autoprefixer'] } } 

对于path, {,*/}是什么意思呢? 如何使用双星号**/

这种模式在yeoman模板中被广泛使用:这意味着在文件夹层次结构中只能查看一个层次。 它主要用于性能的原因,因为同时观看太多的文件可能会很慢(甚至不可能)。

这些是Grunt的globbing模式 ,由node-globminimatch库支持。

基本上:

  • *匹配任意数量的字符, 但不是 /
  • **匹配任意数量的字符, 包括 / ,只要它是path部分中唯一的字符
  • {}允许使用逗号分隔的“或”expression式列表

所以, styles/{,*/}*.less 。less与以下文件相匹配:

  • styles目录中的LESS文件
  • LESS文件在styles目录的直接子目录内(但不是更深)

我相信你在那里使用一个迷你模式 。

双星号是一个导致recursion到子目录的glob。

单个星号只匹配当前目录中的0个或更多个字符(匹配除斜杠字符以外的每个字符)。

例如,/ ** / d将匹配a / b / c / d。

答案是globbing-patterns 。

其他答案已经回答了{,*/}*意思。

**/{,*/}*之间的差异是文件夹深度

  • /styles/{,*/}*.less已经被分成两种情况

    1. /styles/*.less
    2. /styles/*/*.less

例如

/styles/{,*/}*.less将匹配/styles/x.less (情况1)

/styles/{,*/}*.less也会匹配/styles/test/x.less (情况2)

但是/styles/{,*/}*.less不能匹配/styles/test/test1/x.less

但是/styles/**/*.less可以做到这一点