我对吞咽比较陌生。当我尝试使用带有其 sass 文件的子文件夹编译一个目录时,我遇到了一个问题。
文件夹结构:
|_sass
|__folder1
| |_file.sass
|__folder2
| |_file.sass
|__folder3
|_file.sass
我简单的吞咽任务来尝试编译
gulp.task('sass', function(){
return sass('sass/')
.pipe(gulp.dest('css');
}
上面的此任务不适用于文件夹,但是如果我像下面的gulp任务一样指定文件,则可以正常工作。
gulp.task('sass', function(){
return sass('sass/folder1/file1.sass')
.pipe(gulp.dest('css');
}
我已经检查了存储库的文档(gulp-ruby-sass)和stackoverflow中的其他主题,我发现的一种解决方案是将所有sass代码导入一个文件并进行编译。
我尝试了不同的路径:./sass
、sass
、sass/
最后一个语法,gulp.src(path/**/*.sass)
gulp-sass
存储库也是如此。
你可以帮我吗?提前致谢
编辑:使用 gulp-sass
,而不是 gulp-ruby-sass
,因为gulp-ruby-sass
只支持单个文件,如文档中所述:
gulp-ruby-sass 尚不支持 globs,仅支持单个文件或目录。就像萨斯一样。
您应该创建一个具有有效 glob 参数的流gulp.src()
,而不仅仅是直接调用 sass()
并在pipe()
中调用它:
gulp.task('sass', function (){
return gulp.src([
'sass/folder1/file.sass',
'sass/folder2/file.sass',
'sass/folder3/file.sass'
])
.pipe(sass())
.pipe(gulp.dest('css'));
});
如果您只想导入的文件命名正确(以下划线开头),这也应该有效:
gulp.task('sass', function (){
return gulp.src('sass/**/*.sass')
.pipe(sass())
.pipe(gulp.dest('css'));
});
编辑:修复了一些代码错误 - SO 需要一个 linter (;