I have i problem with gulp-ruby-sass. When i try to run the watch task and change some .sass files it occurs error:
TypeError: Arguments to path.join must be strings
Here is my gulpfile.js
var gulp = require('gulp');
var jade = require('gulp-jade');
var sass = require('gulp-ruby-sass');
var watch = require('gulp-watch');
gulp.task('sass', function() {
return gulp.src('sass/*.sass')
.pipe(sass())
.pipe(gulp.dest('./css'));
});
gulp.task('watch', function() {
gulp.watch('./sass/*.sass', ['sass']);
})
I used gulp-slash but it don't works.
Slightly off-topic, but in the case of also wanting to use gulp-sourcemaps, the various documentation out there is somewhat outdated. To use rjb's example with sourcemaps, you would thus go
Note that the destination arg for sourcemaps,
'./'
, will evaluate to the folder in the line below,gulp.dest(...)
, effectively here, map-file will end up in'path/to/css'
.Credit for this goes to http://www.devworkflows.com/posts/getting-scss-auto-prefixer-and-source-map-to-play-nice/.
gulp-ruby-sass
syntax changes in version 1.0.0. See this issue:https://github.com/sindresorhus/gulp-ruby-sass/issues/191
New docs are currently here:
https://github.com/sindresorhus/gulp-ruby-sass/tree/rw/1.0#gulp-ruby-sass-is-a-gulp-source-adapter
This should compile sass files in specified directory:
With the syntax changes in gulp-ruby-sass starting from 1.0.0-alpha, you'll need to use
gulp-ruby-sass()
instead ofgulp.src()
to compile your Sass from a file or directory.If you try to use the original syntax with newer or latest versions, you may encounter the following error:
TypeError: Arguments to path.join must be strings
For example, the original syntax in 0.7.x and earlier using gulp.src(), now deprecated:
The new syntax introduced in 1.x using gulp-ruby-sass() as a gulp source adapter:
Notice the difference in the first line of the return statement.
Also keep in mind, as of this writing when using gulp-ruby-sass 1.0.0-alpha, globs are not supported yet.