From f4a6dac8782808e564678b4484f3ce87e59f6c8f Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Tue, 18 Apr 2023 17:29:49 +0000 Subject: [PATCH] fix(@angular/cli): process keeps running when analytics are enabled In newer Node.js versions ng commands do not terminate properly when analytics are enabled. This is because the request is never closed unless a `data` event listener is attached. Closes #25034 and closes #25008 (cherry picked from commit c0a0f727f881e98f86bf0b1784ee809a27cec42f) --- packages/angular/cli/src/analytics/analytics-collector.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/angular/cli/src/analytics/analytics-collector.ts b/packages/angular/cli/src/analytics/analytics-collector.ts index 39848e222faf..b43d7e5e16f5 100644 --- a/packages/angular/cli/src/analytics/analytics-collector.ts +++ b/packages/angular/cli/src/analytics/analytics-collector.ts @@ -182,6 +182,9 @@ export class AnalyticsCollector { }, }, (response) => { + // The below is needed as otherwise the response will never close which will cause the CLI not to terminate. + response.on('data', () => {}); + if (response.statusCode !== 200 && response.statusCode !== 204) { reject( new Error(`Analytics reporting failed with status code: ${response.statusCode}.`),