diff --git a/build/gulpfile.plugins.js b/build/gulpfile.plugins.js index 51f0b50c6fadb79cf632167abeb2757589249a9e..efbf493216a55c0181d607b4125a36da0d3a3677 100644 --- a/build/gulpfile.plugins.js +++ b/build/gulpfile.plugins.js @@ -114,7 +114,7 @@ var tasks = readAllPlugins() .pipe(tsFilter) .pipe(compilation()) .pipe(tsFilter.restore) - .pipe(quiet ? es.through() : reporter()); + .pipe(quiet ? es.through() : reporter.end()); return es.duplex(input, output); }; diff --git a/build/lib/reporter.js b/build/lib/reporter.js index e3e61b9da911903d388cd36ff78a59c28b39bc71..84c1e9d4805de61f2429d79b54df822e55258ade 100644 --- a/build/lib/reporter.js +++ b/build/lib/reporter.js @@ -18,7 +18,7 @@ function onEnd() { } var errors = _.flatten(allErrors); - errors.map(function (err) { console.log('*** Error:', err); }); + errors.map(function (err) { console.error('*** Error:', err); }); console.log('*** Finished with', errors.length, 'errors.'); } @@ -26,17 +26,23 @@ module.exports = function () { var errors = []; allErrors.push(errors); - return function (err) { - if (err) { - errors.push(err); - return; - } + var result = function (err) { + errors.push(err); + }; + result.end = function (emitError) { errors.length = 0; onStart(); return es.through(null, function () { onEnd(); - this.emit('end'); + + if (emitError && errors.length > 0) { + this.emit('error', 'Errors occurred.'); + } else { + this.emit('end'); + } }); }; + + return result; }; \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 28159b343055d567eccbee55d20158aa7bb73165..81ed06e4de1cd119fb5e42e8ec33b6892684f2c0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -39,7 +39,7 @@ var tsOptions = { sourceRoot: util.toFileUri(rootDir) }; -function createCompile(build) { +function createCompile(build, emitError) { var opts = _.clone(tsOptions); opts.inlineSources = !!build; @@ -67,14 +67,14 @@ function createCompile(build) { sourceRoot: tsOptions.sourceRoot })) .pipe(tsFilter.restore) - .pipe(quiet ? es.through() : reporter()); + .pipe(quiet ? es.through() : reporter.end(emitError)); return es.duplex(input, output); }; } function compileTask(out, build) { - var compile = createCompile(build); + var compile = createCompile(build, true); return function () { var src = gulp.src('src/**', { base: 'src' });