`{,*/}`在Gruntfile.js的路径中意味着什么?

hll*_*lau 17 node.js gruntjs yeoman yeoman-generator

Gruntfile.js,我有:

watch: {
    styles: {
      files: [
        '<%= yeoman.app %>/styles/{,*/}*.less'
      ],
      tasks: ['copy:styles', 'autoprefixer']
    }
}
Run Code Online (Sandbox Code Playgroud)

对于这条路,究竟{,*/}是什么意思呢?它与使用双星号**/有何不同?

Roc*_*ite 28

这些是Grunt的通配模式,由node-globminimatch库支持.

基本上:

  • *匹配任意数量的字符,但不匹配 /
  • **匹配任意数量的字符,包括 /,只要它是路径部分中唯一的东西
  • {}允许以逗号分隔的"或"表达式列表

因此,styles/{,*/}*.less匹配以下文件:

  • styles目录中的LESS文件
  • 目录直接子目录中的 LESS文件styles(但没有更深)


vku*_*kin 14

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

  • 我想是的,但更少的深度=>更少的文件(通常).无论如何,我不认为这种方法有任何好处,因为它交易性能的正确性. (2认同)

JRP*_*JRP 11

我相信你在那里使用迷你图案.

双星号是一个导致递归到子目录的glob.

单个星号仅匹配当前目录中的0个或更多字符(它匹配除斜杠字符之外的每个字符).

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