Prevent errors from breaking / crashing gulp watch

后端 未结 8 840
我在风中等你
我在风中等你 2020-12-12 09:17

I\'m running gulp 3.6.2 and have the following task that was set up from a sample online

gulp.task(\'watch\', [\'default\'], function () {
  gulp.watch([
            


        
相关标签:
8条回答
  • 2020-12-12 09:56

    A simple solution to this is to put gulp watch in an infinite loop within a Bash (or sh) shell.

    while true; do gulp; gulp watch; sleep 1; done

    Keep the output of this command in a visible area on your screen as you edit your JavaScript. When your edits result in an error, Gulp will crash, print its stack trace, wait for a second, and resume watching your source files. You can then correct the syntax error, and Gulp will indicate whether or not the edit was a success by either printing out it's normal output, or crashing (then resuming) again.

    This will work in a Linux or Mac terminal. If you are using Windows, use Cygwin or Ubuntu Bash (Windows 10).

    0 讨论(0)
  • 2020-12-12 09:59

    The above examples didn't work for me. The following did though:

    var plumber = require('gulp-plumber');
    var liveReload = require('gulp-livereload');
    var gutil = require('gulp-util');
    var plumber = require('gulp-plumber');
    var compass = require('gulp-compass');
    var rename = require('gulp-rename');
    var minifycss = require('gulp-minify-css');
    var notify = require('gulp-notify');
    
    gulp.task('styles', function () {
        //only process main.scss which imports all other required styles - including vendor files.
        return gulp.src('./assets/scss/main.scss')
                .pipe(plumber(function (error) {
                    gutil.log(error.message);
                    this.emit('end');
                }))
                .pipe(compass({
                    config_file: './config.rb',
                    css: './css'
                    , sass: './assets/scss'
                }))
                //minify files
                .pipe(rename({suffix: '.min'}))
                .pipe(minifycss())
    
                //output
                .pipe(gulp.dest('./css'))
                .pipe(notify({message: 'Styles task complete'}));
    });
    
    gulp.task('watch', function () {
        liveReload.listen();
        gulp.watch('assets/scss/**/*.scss', ['styles']);
    });
    
    0 讨论(0)
提交回复
热议问题