Skip to content

Commit 7360a34

Browse files
clydinalan-agius4
authored andcommittedJun 18, 2024·
fix(@angular/build): use Node.js available parallelism for default worker count
The Node.js `os.availableParallelism` API now provides more accurate values when used within containers such as many CI environments. This provides a better default when using resource limited CI setups. The value is still set to a maximum default of four. However, the `NG_BUILD_MAX_WORKERS` environment variable can be used to set the value to an explicit value if required. (cherry picked from commit dd07049)
1 parent 86e031d commit 7360a34

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed
 

Diff for: ‎packages/angular/build/src/utils/environment-options.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9+
import { availableParallelism } from 'node:os';
10+
911
function isDisabled(variable: string): boolean {
1012
return variable === '0' || variable.toLowerCase() === 'false';
1113
}
@@ -74,7 +76,9 @@ export const allowMinify = debugOptimize.minify;
7476
*
7577
*/
7678
const maxWorkersVariable = process.env['NG_BUILD_MAX_WORKERS'];
77-
export const maxWorkers = isPresent(maxWorkersVariable) ? +maxWorkersVariable : 4;
79+
export const maxWorkers = isPresent(maxWorkersVariable)
80+
? +maxWorkersVariable
81+
: Math.min(4, availableParallelism());
7882

7983
const parallelTsVariable = process.env['NG_BUILD_PARALLEL_TS'];
8084
export const useParallelTs = !isPresent(parallelTsVariable) || !isDisabled(parallelTsVariable);

Diff for: ‎packages/angular_devkit/build_angular/src/utils/environment-options.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9+
import { availableParallelism } from 'node:os';
10+
911
function isDisabled(variable: string): boolean {
1012
return variable === '0' || variable.toLowerCase() === 'false';
1113
}
@@ -74,7 +76,9 @@ export const allowMinify = debugOptimize.minify;
7476
*
7577
*/
7678
const maxWorkersVariable = process.env['NG_BUILD_MAX_WORKERS'];
77-
export const maxWorkers = isPresent(maxWorkersVariable) ? +maxWorkersVariable : 4;
79+
export const maxWorkers = isPresent(maxWorkersVariable)
80+
? +maxWorkersVariable
81+
: Math.min(4, availableParallelism());
7882

7983
const parallelTsVariable = process.env['NG_BUILD_PARALLEL_TS'];
8084
export const useParallelTs = !isPresent(parallelTsVariable) || !isDisabled(parallelTsVariable);

0 commit comments

Comments
 (0)
Please sign in to comment.