diff --git a/src/dev/typescript/exec_in_projects.ts b/src/dev/typescript/exec_in_projects.ts index 12e64e63ab3c4d..a04b775fd82140 100644 --- a/src/dev/typescript/exec_in_projects.ts +++ b/src/dev/typescript/exec_in_projects.ts @@ -17,6 +17,8 @@ * under the License. */ +import os from 'os'; + import { ToolingLog } from '@kbn/dev-utils'; import chalk from 'chalk'; import execa from 'execa'; @@ -47,7 +49,7 @@ export function execInProjects( title: project.name, })), { - concurrent: true, + concurrent: Math.min(4, Math.round((os.cpus() || []).length / 2) || 1) || false, exitOnError: false, } ); diff --git a/src/dev/typescript/run_type_check_cli.ts b/src/dev/typescript/run_type_check_cli.ts index f0ddf6f56e359c..bf6e8711fa81e9 100644 --- a/src/dev/typescript/run_type_check_cli.ts +++ b/src/dev/typescript/run_type_check_cli.ts @@ -87,5 +87,10 @@ export function runTypeCheckCli() { process.exit(1); } - execInProjects(log, projects, 'tsc', project => ['--project', project.tsConfigPath, ...tscArgs]); + execInProjects(log, projects, process.execPath, project => [ + ...(project.name === 'x-pack' ? ['--max-old-space-size=2048'] : []), + require.resolve('typescript/bin/tsc'), + ...['--project', project.tsConfigPath], + ...tscArgs, + ]); }