如何选择所有文件,但排除目录中的特定文件扩展名

时间:2015-06-02 06:27:57

标签: regex gruntjs grunt-contrib-copy

我想复制文件夹中的所有文件,但我想在子文件夹中排除特定的文件扩展名。我怎么能这样做?

以下是我的代码片段:

frontendDev: {
    files: [{
        expand: true,
        cwd: './frontend/app',
        src: ['!angular/*.js', '**/*.!(coffee|less|scss|sass)'],
        dest: './frontend/.dev'
    }]
},

注意:这里我想复制所有文件,但我想排除angular子文件夹中的(.js)文件。

有什么想法?感谢

更新 - 答案

基于Raptis Dimos所说的包含和排除顺序很重要。 所以我先把夹杂物放在最后,然后是排除。

frontendDev: {
    files: [{
        expand: true,
        cwd: './frontend/app',
        src: ['**/*.!(coffee|less|scss|sass)', '!angular/**/*.js'],
        dest: './frontend/.dev'
    }]
},

1 个答案:

答案 0 :(得分:1)

这是它的工作原理。的!在Grunt中,将表达式转换为“排除”表达式。

您还可以查看Grunt docs,说:

  

匹配以!开头的模式的路径将从返回的数组排除。模式按顺序处理,因此包含和排除顺序非常重要。