我有问题 吞 </跨度> -ruby - 萨斯。当我尝试运行监视任务并更改一些.sass文件时,会发生错误:
TypeError:path.join的参数必须是字符串
这是我的gulpfile.js
var 吞 </跨度> =要求(‘ 吞 </跨度> “);var jade = require(’ 吞 </跨度> -玉’);var sass = require(‘ 吞 </跨度> -ruby-SASS’);var watch = require(‘ 吞 </跨度> -看’);
gulp.task(‘sass’,function(){ 返回gulp.src(‘sass / * .ssss’
gulp-ruby-sass 版本1.0.0中的语法更改。看到这个问题:
gulp-ruby-sass
https://github.com/sindresorhus/gulp-ruby-sass/issues/191
新文档目前在这里:
https://github.com/sindresorhus/gulp-ruby-sass/tree/rw/1.0#gulp-ruby-sass-is-a-gulp-source-adapter
这应该编译指定目录中的sass文件:
gulp.task('sass', function() { return sass('sass/') .pipe(gulp.dest('./css')); });
随着 语法更改 在 的 一饮而尽,红宝石萨斯 强> 从1.0.0-alpha开始,你需要使用 gulp-ruby-sass() 代替 gulp.src() 从文件或目录编译Sass。
gulp-ruby-sass()
gulp.src()
如果您尝试使用较新或最新版本的原始语法,您可能会遇到以下错误:
TypeError: Arguments to path.join must be strings
例如,0.7.x及更早版本中使用gulp.src()的原始语法现已弃用:
var gulp = require('gulp'); var sass = require('gulp-ruby-sass'); // gulp-ruby-sass: 0.7.1 gulp.task('sass', function() { return gulp.src('path/to/scss') .pipe(sass({ style: 'expanded' })) .pipe(gulp.dest('path/to/css')); });
使用gulp-ruby-sass()作为gulp源适配器在1.x中引入的新语法:
// gulp-ruby-sass: 1.x gulp.task('sass', function() { return sass('path/to/scss', { style: 'expanded' }) .pipe(gulp.dest('path/to/css')); });
注意return语句第一行的差异。
另外请记住,在撰写本文时,使用gulp-ruby-sass 1.0.0-alpha时,还不支持globs。
稍微偏离主题,但在也想要使用的情况下 一饮而尽,sourcemaps ,那里的各种文件有点过时了。使用 RJB 有了源图的例子,你会这么做的
// gulp-ruby-sass: 1.x gulp.task('sass', function() { return sass('path/to/scss', { style: 'expanded', sourcemap: true }) .pipe(sourcemaps.init({loadMaps: true})) .pipe(sourcemaps.write('./')) .pipe(gulp.dest('path/to/css')); });
请注意源映射的目标arg, './' ,将评估到下面一行中的文件夹, gulp.dest(...) ,有效地,map-file将最终进入 'path/to/css' 。
'./'
gulp.dest(...)
'path/to/css'
归功于此 http://www.devworkflows.com/posts/getting-scss-auto-prefixer-and-source-map-to-play-nice/ 。