Gulp - 排除路径不适合我

时间:2016-05-28 10:54:12

标签: javascript gulp

我看到很多关于“如何在Gulp路径中排除”这一问题的Google条目,但这些都不适合我。

唯一有效的是:

gulp.task('sassPlatform', function () {
    return gulp.src([
        './src/sass/platforms/**',
        // TODO find a way to make this shorter
        '!./src/sass/platforms/globals/*.scss',
        '!./src/sass/platforms/globals/'
    ])
        .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
        .pipe(gulp.dest('./dist/css/platforms'));
});

重点是我得到了这个文件夹结构:

scss
  |_platforms
    |_globals
      |_content.scss
      |_footer.scss
      |_globals.scss
      |_header.scss
    |_superfolder1
      |_main.scss
    |_superfolder2
      |_main.scss
    |_superfolder3
      |_main.scss
    |_and alot of superfolders more...

我想保留文件夹结构并获取超级文件夹中的所有字段。但不是全球文件夹。

使用我的代码,这可以正常工作。但我想理解为什么它不起作用:

'!./src/sass/platforms/globals{/, *, *.scss}'

1 个答案:

答案 0 :(得分:0)

Glup使用内部node-glob,在匹配任何模式之前,将其展开为花括号中的所有部分:

'!./src/sass/platforms/globals{/, *, *.scss}'

扩展为:

'!./src/sass/platforms/globals/'
'!./src/sass/platforms/globals*'
'!./src/sass/platforms/globals*.scss'

这可能不是你想要的。请尝试使用此代码:

'!./src/sass/platforms/globals/{*, *.scss}'