dave dave
dave dave

Reputation: 957

Task 'sass' is not in your gulpfile

I've installed gulp and gulp-sass using npm.

Following the examples on github for gulp and gulp-sass I've created this simple gulpfile:

var gulp = require('gulp') ;
var sass = require('gulp-sass') ;

gulp.task('default', function() {

    gulp.task('sass', function () {
        gulp.src('./sass/**/*.scss')
            .pipe(sass().on('error', sass.logError))
            .pipe(gulp.dest('./css'));
    });

    gulp.task('sass:watch', function () {
        gulp.watch('./sass/**/*.scss', ['sass']);
    });

}) ;

If I run 'gulp' then nothing really happens - as expected. I get back

[00:20:20] Using gulpfile ~/wa/myproj/gulpfile.js
[00:20:20] Starting 'default'...
[00:20:20] Finished 'default' after 64 μs

That's all fine and dandy.

However, when I run 'gulp sass' I get back this:

[00:21:38] Using gulpfile ~/wa/myproj/gulpfile.js
[00:21:38] Task 'sass' is not in your gulpfile
[00:21:38] Please check the documentation for proper gulpfile formatting

I've clearly got a taks defined for 'sass'. What am I missing?

Upvotes: 1

Views: 9503

Answers (4)

İbrahim Koray Aksoy
İbrahim Koray Aksoy

Reputation: 586

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', function(){
    gulp.src('./scss/**/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('./css'));
});

gulp.task('watch', function(){
    gulp.watch('./scss/**/*.scss',['sass']);
});

This works for me. Try it out. But I have to say My SASS folder's name is 'scss'. I changed the name and deleted the default task.

Upvotes: 0

Diwash Pradhan
Diwash Pradhan

Reputation: 21

It probably didn't call because it was the function was inside default, and also default needs to call the other functions, after defining it outside default.

var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task('sass', function(){
    gulp.src('./sass/**/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('./css'));
});
gulp.task('watch', function(){
    gulp.watch('./sass/**/*.scss',['sass']);
});
gulp.task('default', ['sass','watch']);

Upvotes: 2

Syed Shahjahan
Syed Shahjahan

Reputation: 119

I have faced the same issue "Task 'sass' is not in your gulpfile" when I use gulp scss command.

But when my friend ran gulp css command in command prompt, it worked properly by updating the CSS file. Please look at the below image, I hope this might help you.

enter image description here

Upvotes: 1

dave dave
dave dave

Reputation: 957

I figured it out:

The 'sass' task was wrapped inside the 'default' task.

This works:

var gulp = require('gulp') ;
var sass = require('gulp-sass') ;

gulp.task('default', function() {

}) ;

gulp.task('sass', function () {
    gulp.src('./sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./css'));
});

gulp.task('sass:watch', function () {
    gulp.watch('./sass/**/*.scss', ['sass']);
});

Upvotes: 1

Related Questions