Browserify和Gulp - 处理错误

时间:2015-10-26 12:48:11

标签: gulp browserify gulp-watch

所以我有一个gulpfile,

var gulp = require('gulp');
var browserify = require('gulp-browserify');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var source =  require('vinyl-source-stream');


gulp.task('js', function () {
    gulp.src('js/main.js')
        .pipe(browserify())
        .pipe(rename('js/bundle.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./'));

})

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

    gulp.watch('js/*.js', ['js']);
})

相当糟糕的标准东西 - 但我遇到的问题不是给我一个错误,gulp文件只是打破了我的gulp手表

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: module "./sticknav.js

在这个例子中它是一个错字 - 应该是stickynav.js但现在意味着我必须回去再次开始 gulp watch 。如何在没有破坏的情况下捕获错误。

1 个答案:

答案 0 :(得分:0)

这似乎是一个常见的问题,可以通过gulp管道工解决

https://www.npmjs.com/package/gulp-plumber

通过管道工管道它并解决NPM流问题。到目前为止对我有好处。

我还为咆哮添加了声音(OSX)通知。

完整的gulpfile.js:

var gulp = require('gulp');
var browserify = require('gulp-browserify');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var source =  require('vinyl-source-stream');
var notify = require("gulp-notify");
var plumber = require('gulp-plumber');

    function errorAlert(error){

    notify.onError({title: "Error", message: "Check your terminal", sound: "Funk"})(error); //Error Notification
    console.log(error.toString());//Prints Error to Console
    this.emit("end"); //End function
};



gulp.task('js', function () {
    return gulp.src('js/main.js')
        .pipe(plumber({errorHandler: errorAlert}))
        .pipe(browserify({debug:  true}))
        .pipe(rename('js/bundle.js'))
        //.pipe(uglify())
        .pipe(gulp.dest('./'))
        .pipe(notify({title: "Success", message: "Well Done!", sound: "Glass"}));


})

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

    gulp.watch('js/*.js', ['js']);
})