floatdrop / gulp-plumber

Fixing Node pipes
MIT License
806 stars 32 forks source link

Not working with gulp-jsdoc #33

Open Chowarmaan opened 9 years ago

Chowarmaan commented 9 years ago

I have a syntax error in a file (missing '};') and the gulp-jsdoc module will throw an exception, but gulp-plumber does not catch this and keep working.

Sample JS: angular.module('MyApp').service("Data", ["$firebaseObject", "$firebaseArray", "GetFireBaseObject", function($firebaseObject, $firebaseArray, GetFireBaseObject) { var MemberRef = GetFireBaseObject.DataURL('data/');

    this.AddMember = function(MemberKey) {
        var OneMemberRef = MemberRef.child(MemberKey);
        return $firebaseObject(OneMemberRef);
    };

    this.DeleteMember = function(MemberKey) {
        var OneMemberRef = MemberRef.child(MemberKey);
        OneMemberRef.remove();

// }; // Commented out to cause error.

}

]);

Gulp fails with Error: Line xx: Unexpected token )

Gulp.Task: gulp.task('Documentation-API', function() { return gulp.src(SourcePath.javascript, {cwd: RootDir.home}) .pipe(plumber( { errorHandler: OnErrorHandler } )) .pipe(jsdoc.parser()) .pipe(jsdoc.generator(RootDir.docs + DocumentationPath.javascript ) ); });

floatdrop commented 9 years ago

gulp-jsdoc uses https://github.com/juliangruber/multipipe, which replaces default error handler - so plumber thinks new error handler is intentionally placed and do nothing. Maybe it is better to force-replace error handlers after plumber, since this is not first new error handler problem occurrence.

Chowarmaan commented 9 years ago

That makes sense, as it would likely stop more reports with different external tools be logged, that all use the https://github.com/juliangruber/multipipe.