Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gulp TypeError: Arguments to path.join must be strings

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.

like image 575
Andrew Gnilitskiy Avatar asked Jan 25 '15 18:01

Andrew Gnilitskiy


2 Answers

With the syntax changes in gulp-ruby-sass starting from 1.0.0-alpha, you'll need to use gulp-ruby-sass() instead of gulp.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:

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')); }); 

The new syntax introduced in 1.x using gulp-ruby-sass() as a gulp source adapter:

// gulp-ruby-sass: 1.x gulp.task('sass', function() {     return sass('path/to/scss', { style: 'expanded' })         .pipe(gulp.dest('path/to/css')); }); 

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.

like image 134
rjb Avatar answered Oct 08 '22 13:10

rjb


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:

gulp.task('sass', function() {     return sass('sass/')         .pipe(gulp.dest('./css')); }); 
like image 39
Heikki Avatar answered Oct 08 '22 14:10

Heikki