Search code examples
javascriptgulpgulp-sassgulp-concatgulp-watch

Cyclic assembly gulp watch


There is a project, its structure:

struct

I do run gulp watch, when changing sass-file everything works correctly , but when I change js-file - assembly going infinite.

gulpfile:

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var compass = require('gulp-compass');

gulp.task('compress-js', function() {
    return gulp.src([
            './www/js/jquery/**/*.js',
            './www/js/vendor/**/*.js',
            './www/js/lib/**/*.js',
            './www/js/common/app.js',
            './www/js/pages/**/*.js',
            './www/js/common/main.js',
            '!./www/js/combine.js'
        ])
        .pipe(concat('combine.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./www/js/'));
});

gulp.task('compress-css', function() {
    return gulp.src('./scss/**/*.scss')
                .pipe(compass({
                    config_file: './scss/config.rb',
                    css: './www/css',
                    sass: './scss'
                }))
                .pipe(gulp.dest('./www/css/'));
});


gulp.task('watch', function() {
    gulp.watch(['./scss/**/*.scss'], ['compress-css']);
    gulp.watch(['./www/js/**/*.js'], ['compress-js']);
});

Tell me please, what is wrong here?


Solution

  • The problem seems in your gulp.watch

    gulp.watch(['./www/js/**/*.js'], ['compress-js']);
    

    When you concat the js files for the build you exclude combine.js but you take it as good for the watch so he loop