Skip to content

Compilation errors kill gulp watch: Error [ERR_STREAM_PUSH_AFTER_EOF]: stream.push() after EOF #569

@AlexanderOMara

Description

@AlexanderOMara

Expected behavior:

Expected that failed builds would not force gulp watch to shutdown.

Actual behavior:

Failed builds throw uncaught exceptions.

Your gulpfile:

gulpfile.babel.js (using Gulp 4)

import gulp from 'gulp';
import gulpTypescript from 'gulp-typescript';
import pumpPromise from 'pump-promise';


gulp.task('build', async function task() {
	const project = gulpTypescript.createProject('tsconfig.json', {
		declaration: true
	});
	const ts = project(gulpTypescript.reporter.fullReporter(true));

	await pumpPromise(
		gulp.src('index.ts'),
		ts
	);

	await pumpPromise(
		ts.js,
		gulp.dest('lib')
	);
	await pumpPromise(
		ts.dts,
		gulp.dest('lib')
	);
});

gulp.task('watch', async function() {
	gulp.watch('index.ts', {}, gulp.parallel('build'));
});

tsconfig.json

Include your tsconfig, if related to this issue.

{}

Here's a Gits to demonstrate the error

First run:

yarn install
yarn run gulp watch

Then edit index.ts and replace class Greeter with class GreeterBad and see:

[17:38:44] Starting 'build'...
[gulp-typescript] 2552 Cannot find name 'Greeter'. Did you mean 'greeter'?
> file: /projects/74a0da2e5b0b0625585743f2b9725a46/index.ts:
> [10] let greeter = new Greeter("world");
[gulp-typescript] 2552 Cannot find name 'Greeter'. Did you mean 'greeter'?
> file: /projects/74a0da2e5b0b0625585743f2b9725a46/index.ts:
> [10] let greeter = new Greeter("world");
TypeScript: 1 semantic error
TypeScript: emit succeeded (with errors)
[17:38:46] 'build' errored after 1.9 s
[17:38:46] Error [ERR_STREAM_PUSH_AFTER_EOF]: stream.push() after EOF
    at readableAddChunk (_stream_readable.js:246:30)
    at CompileOutputStream.Readable.push (_stream_readable.js:213:10)
    at Output.writeJs (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/output.js:25:23)
    at ProjectCompiler.emitFile (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/compiler.js:144:33)
    at ProjectCompiler.inputDone (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/compiler.js:76:22)
    at CompileStream.end (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/project.js:136:31)
    at DestroyableTransform.onend (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/readable-stream/lib/_stream_readable.js:577:10)
    at Object.onceWrapper (events.js:255:19)
    at DestroyableTransform.emit (events.js:165:20)
    at endReadableNT (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/readable-stream/lib/_stream_readable.js:1000:12)
events.js:137
      throw er; // Unhandled 'error' event
      ^

Error [ERR_STREAM_PUSH_AFTER_EOF]: stream.push() after EOF
    at readableAddChunk (_stream_readable.js:246:30)
    at CompileOutputStream.Readable.push (_stream_readable.js:213:10)
    at Output.writeDts (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/output.js:35:24)
    at ProjectCompiler.emitFile (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/compiler.js:147:33)
    at ProjectCompiler.inputDone (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/compiler.js:76:22)
    at CompileStream.end (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/gulp-typescript/release/project.js:136:31)
    at DestroyableTransform.onend (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/readable-stream/lib/_stream_readable.js:577:10)
    at Object.onceWrapper (events.js:255:19)
    at DestroyableTransform.emit (events.js:165:20)
    at endReadableNT (/projects/74a0da2e5b0b0625585743f2b9725a46/node_modules/readable-stream/lib/_stream_readable.js:1000:12)
error An unexpected error occurred: "Command failed.
Exit code: 1

If a watch task fails, it shouldn't kill the watch, as that's a huge pain to restart every time it fails.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions