Search code examples
node.jssassgulpgulp-sass

gulp sass source map


I need help adding source map to SASS compiler in the same CSS output folder. Till now, I got to install gulp-sourcemaps module within gulpfile.js but couldn't know success to bind sourcemaps.write as gulp.task.

Any help is much appreciated :)

var gulp = require('gulp');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var bs = require('browser-sync').create();

gulp.task('browser-sync', ['sass'], function() {
    bs.init({
    server: {
        baseDir: "./"
    },
    proxy: {
        target: "localhost:8080", // can be [virtual host, sub-directory, localhost with port]
        ws: true // enables websockets
    }
});
});

gulp.task('sass', function() {
    return gulp.src('scss/**/*.scss')
        .pipe(sourcemaps.init())
        .pipe(sass())
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('assets/css'))
        .pipe(bs.reload({
            stream: true
        }));
});

gulp.task('watch', ['browser-sync'], function () {
    gulp.watch("scss/*.scss", ['sass']);
    gulp.watch("*.php").on('change', bs.reload);
});

Solution

  • Try this code for gulp task 'sass':

    gulp.task('sass', function() {
        return gulp.src('scss/**/*.scss')
            .pipe(sourcemaps.init())
            .pipe(sass())
            .pipe(sourcemaps.write('.'))
            .pipe(gulp.dest('assets/css'))
            .pipe(bs.reload({
                stream: true
            }));
    });
    

    First init sourcemaps then compile sass() after that write sourcemap in the same folder ('.')

    Regards