我看到很多关于“如何在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}'
答案 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}'