此通配符是什么意思?

时间:2019-03-10 21:19:14

标签: css json gruntjs wildcard

我有一个grunt文件,其中包含多个命令。一部分是由一位离开的同事写的,但是我们找不到确切含义的解释。

它做了它应该做的,但是知道确切的是我们不做的事情:)

这是代码:

dist: {
    files: [{
        expand: true,
        cwd: '<%= config.tmp %>/styles/',
        src: '{,**/}*.css',
        dest: '<%= config.tmp %>/styles/'
    }]
}

我们不确定的部分是第5行上的{,**/}

3 个答案:

答案 0 :(得分:2)

来自the documentation

  

{}允许使用逗号分隔的“或”表达式列表

因此

'{,**/}*.css',

将匹配*.css**/*.css

大括号内的第一个模式是 redundant ,因为第二个模式应该已经与当前/根目录中的.css文件匹配。

答案 1 :(得分:1)

该模式内的

{,**/}*.css大括号表示称为Brace扩展的功能。内部支持该功能的grunt is using Minimatch库。其中的逗号分隔模式列表将首先扩展为两种模式*.css**/*.css。您可以使用globster.xyz

测试模式

答案 2 :(得分:0)

  

sotirios-delimanolis的一个很好的答案:

     

When to use ** (double star) in glob syntax within JAVA

简而言之,如果您使用一颗星,则嵌套路径将被忽略:

/a/a/a.css-已忽略

大括号内的逗号就是这样,因此带有逗号在内的文件/目录将不会被忽略:

dsadsad,dasdsadas / a.css