gulp-jade-inheritance icon indicating copy to clipboard operation
gulp-jade-inheritance copied to clipboard

Plugin crashes gulp on syntax error

Open alex-shamshurin opened this issue 8 years ago • 9 comments

The plugin feeds an invalid glob pattern to the output chain if some errors occur with jade syntax. (to next gulp.src())

The end of the string was reached with no closing bracket found.resources/jade/frontend/modules/_banner.jade

/Users/Shared/www/beirut/node_modules/gulp-jade-inheritance/node_modules/vinyl-fs/lib/src/index.js:37
    throw new Error('Invalid glob argument: ' + glob);
    ^

Error: Invalid glob argument: 
    at Object.src (/Users/Shared/www/beirut/node_modules/gulp-jade-inheritance/node_modules/vinyl-fs/lib/src/index.js:37:11)
    at Stream.endStream (/Users/Shared/www/beirut/node_modules/gulp-jade-inheritance/index.js:63:11)
    at _end (/Users/Shared/www/beirut/node_modules/gulp-jade-inheritance/node_modules/through/index.js:65:9)
    at Stream.stream.end (/Users/Shared/www/beirut/node_modules/gulp-jade-inheritance/node_modules/through/index.js:74:5)
    at Transform.onend (/Users/Shared/www/beirut/node_modules/gulp-cached/node_modules/readable-stream/lib/_stream_readable.js:523:10)
    at Transform.g (events.js:273:16)
    at emitNone (events.js:85:20)
    at Transform.emit (events.js:179:7)
    at /Users/Shared/www/beirut/node_modules/gulp-cached/node_modules/readable-stream/lib/_stream_readable.js:965:16
    at nextTickCallbackWith0Args (node.js:453:9)

My task:

gulp.task('jade', function (cb) {
    return gulp.src(['**/*.jade'], {cwd: app + 'jade'})
        .pipe($.plumber(options.plumber))
        .pipe($.cached('jade'))
        .pipe($.if(global.isWatching, jadeInheritance({basedir: app + 'jade'})))
                .pipe($.filter(function (file) {
            return !/\/_/.test(file.path) && !/^_/.test(file.relative);
        }))
        .pipe($.jade(options.jade))
        .pipe($.prettify(options.htmlPrettify))
        .pipe($.rename(function (path) {
            path.extname = ".blade.php";
        }))
        .pipe(gulp.dest(app + 'views'))
        .pipe($.size({title: 'jade'}))
        .pipe(browserSync.reload({stream: true}));

});

I think it must not kill a gulp process.

alex-shamshurin avatar Mar 14 '16 17:03 alex-shamshurin

the gulpfile looks good, could you paste the content of _banner.jade?

juanfran avatar Mar 15 '16 17:03 juanfran

It occurred during editing. I do not know what it was. But sometimes it happens.

alex-shamshurin avatar Mar 15 '16 17:03 alex-shamshurin

Error is in my issue description above

The end of the string was reached with no closing bracket 

So I think a plugin must handle it somehow.

alex-shamshurin avatar Mar 16 '16 09:03 alex-shamshurin

did you try this?

gulp.task('jade', function (cb) {
    return gulp.src(['**/*.jade'], {cwd: app + 'jade'})
        .pipe($.plumber(options.plumber))
        .pipe($.cached('jade'))
        .pipe($.if(global.isWatching, jadeInheritance({basedir: app + 'jade'})))
                .pipe($.filter(function (file) {
            return !/\/_/.test(file.path) && !/^_/.test(file.relative);
        }))
        .on('error', gutil.log)) //handle error
        .pipe($.jade(options.jade))
        .pipe($.prettify(options.htmlPrettify))
        .pipe($.rename(function (path) {
            path.extname = ".blade.php";
        }))
        .pipe(gulp.dest(app + 'views'))
        .pipe($.size({title: 'jade'}))
        .pipe(browserSync.reload({stream: true}));
});

juanfran avatar Mar 19 '16 10:03 juanfran

Ok, I'll try

alex-shamshurin avatar Mar 19 '16 11:03 alex-shamshurin

This one do not run even if remove redundant bracket.

alex-shamshurin avatar Mar 19 '16 11:03 alex-shamshurin

sorry for the delay in my answers

I think that I've fixed the problem, could you upgrade to gulp-jade-inheritance 0.5.5? thanks

juanfran avatar Mar 22 '16 16:03 juanfran

I cannot upgrade because 0.5.5 right now is unavailable

alex-shamshurin avatar Mar 22 '16 17:03 alex-shamshurin

It should be available now

juanfran avatar Mar 23 '16 14:03 juanfran