diff --git a/packages/node/src/executors/node/node.impl.ts b/packages/node/src/executors/node/node.impl.ts index 729d00a9a5ae6..2243e436fa547 100644 --- a/packages/node/src/executors/node/node.impl.ts +++ b/packages/node/src/executors/node/node.impl.ts @@ -80,7 +80,7 @@ function calculateResolveMappings( }, {}); } -function runProcess( +async function runProcess( event: ExecutorEvent, options: NodeExecutorOptions, mappings: { [project: string]: string } @@ -98,6 +98,20 @@ function runProcess( }, } ); + + if (!options.watch) { + await new Promise((resolve, reject) => { + subProcess.once('exit', (code) => { + if (code !== 0) { + reject(`Node process exited with unsuccessful code ${code}`); + return; + } + + resolve(); + }); + subProcess.once('error', reject); + }); + } } function getExecArgv(options: NodeExecutorOptions) { @@ -127,7 +141,7 @@ async function handleBuildEvent( await killProcess(); } if (event.success) { - runProcess(event, options, mappings); + await runProcess(event, options, mappings); } }