所以我有一个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 。如何在没有破坏的情况下捕获错误。
答案 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']);
})