我正在使用 gulp-ruby-sass 来编译我的 js 和 sass。
我首先遇到了这个错误TypeError:Arguments to path.join must be strings
找到了这个答案,这是因为我使用的是带有 gulp -sass的源图,而答案建议使用gulp-ruby-sass代替。
接下来,我尝试使用以下语法编译所有 SASS 文件:
gulp.task('sass', function () {
return sass('public/_sources/sass/**/*.scss', { style: 'compressed' })
.pipe(sourcemaps.init())
.pipe(concat('bitage_public.css'))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('public/_assets/css'))
.pipe(livereload());
});
这产生了这个错误:
gulp-ruby-sass stderr: Errno::ENOENT: No such file or directory - public/_sources/sass/**/*.scss
然后我注意到在答案中我发现作者写道**
尚不支持地球仪:
还要记住,在撰写本文时,使用 gulp-ruby-sass 1.0.0-alpha 时,还不支持 glob。
我做了更多的挖掘并找到了一种使用数组来指定我的 SASS 文件路径的方法,所以我尝试了以下方法:
gulp.task('sass', function () {
return sass(['public/_sources/sass/*.scss',
'public/_sources/sass/layouts/*.scss',
'public/_sources/sass/modules/*.scss',
'public/_sources/sass/vendors/*.scss'], { style: 'compressed' })
// return sass('public/_sources/sass/**/*.scss', { style: 'compressed' })
.pipe(sourcemaps.init())
.pipe(concat('bitage_public.css'))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('public/_assets/css'))
.pipe(livereload());
});
但我仍然得到Errno::ENOENT: No such file or directory
它,它列出了我放入该数组的所有目录。
如何使用 gulp 在多个目录中编译 SASS?
SASS 源码文件夹结构:
_sources
layouts
...scss
modules
...scss
vendors
...scss
main.scss