Skip to content

Commit c9c9644

Browse files
mtraynhamfilipesilva
authored andcommitted
fix(@angular/cli): Increase keepAliveTimeout for Webpack Dev Server
1 parent aa1decf commit c9c9644

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

packages/@angular/cli/tasks/serve.ts

+21-8
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,27 @@ export default Task.extend({
273273
}
274274

275275
return new Promise((_resolve, reject) => {
276-
server.listen(serveTaskOptions.port, serveTaskOptions.host, (err: any, _stats: any) => {
277-
if (err) {
278-
return reject(err);
279-
}
280-
if (serveTaskOptions.open) {
281-
opn(serverAddress);
282-
}
283-
});
276+
const httpServer = server.listen(
277+
serveTaskOptions.port,
278+
serveTaskOptions.host,
279+
(err: any, _stats: any) => {
280+
if (err) {
281+
return reject(err);
282+
}
283+
if (serveTaskOptions.open) {
284+
opn(serverAddress);
285+
}
286+
});
287+
// Node 8.0 - 8.4 has a keepAliveTimeout bug which doesn't respect active connections.
288+
// Connections will end after ~5 seconds (arbitrary), often not letting the full download
289+
// of large pieces of content, such as a vendor javascript file. This results in browsers
290+
// throwing a "net::ERR_CONTENT_LENGTH_MISMATCH" error.
291+
// https://github.com/angular/angular-cli/issues/7197
292+
// https://github.com/nodejs/node/issues/13391
293+
// https://github.com/nodejs/node/commit/2cb6f2b281eb96a7abe16d58af6ebc9ce23d2e96
294+
if (/^v8.[0-4].\d+$/.test(process.version)) {
295+
httpServer.keepAliveTimeout = 30000; // 30 seconds
296+
}
284297
})
285298
.catch((err: Error) => {
286299
if (err) {

0 commit comments

Comments
 (0)