File tree 1 file changed +21
-8
lines changed
packages/@angular/cli/tasks
1 file changed +21
-8
lines changed Original file line number Diff line number Diff line change @@ -273,14 +273,27 @@ export default Task.extend({
273
273
}
274
274
275
275
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 ( / ^ v 8 .[ 0 - 4 ] .\d + $ / . test ( process . version ) ) {
295
+ httpServer . keepAliveTimeout = 30000 ; // 30 seconds
296
+ }
284
297
} )
285
298
. catch ( ( err : Error ) => {
286
299
if ( err ) {
You can’t perform that action at this time.
0 commit comments