diff --git a/apps/demos/utils/create-bundles/Angular/bundler.ts b/apps/demos/utils/create-bundles/Angular/bundler.ts index ca2d8dbe953e..1b76b9cea5fa 100644 --- a/apps/demos/utils/create-bundles/Angular/bundler.ts +++ b/apps/demos/utils/create-bundles/Angular/bundler.ts @@ -1,4 +1,4 @@ -import { exec } from 'child_process'; +import { spawn } from 'child_process'; import { BuildOptions } from 'esbuild'; import { existsSync, mkdirSync, removeSync } from 'fs-extra'; import { Demo, Framework } from '../helper/types'; @@ -42,8 +42,10 @@ export default class AngularBundler implements Bundler { createDemoLayout(demo, this.framework); - const ngBuildCommand = `npm run build-angular -- ${getProjectNameByDemo(demo)}`; - const ngBuildProcess = exec(ngBuildCommand); + const isWin = process.platform === 'win32'; + const npmCmd = isWin ? 'npm.cmd' : 'npm'; + const npmArgs = ['run', 'build-angular', '--', getProjectNameByDemo(demo)]; + const ngBuildProcess = spawn(npmCmd, npmArgs); ngBuildProcess.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); diff --git a/apps/demos/utils/ts-to-js-converter/converter.ts b/apps/demos/utils/ts-to-js-converter/converter.ts index b56d1bf6ff4a..cd7319aacb69 100644 --- a/apps/demos/utils/ts-to-js-converter/converter.ts +++ b/apps/demos/utils/ts-to-js-converter/converter.ts @@ -78,16 +78,15 @@ const pipeSource = async ( })); }; -// eslint-disable-next-line require-await -const execTsc = async (directory: string, args: string): Promise => new Promise((resolve, reject) => { - cps.exec(`tsc ${args}`, (error, stdout, stderr) => { - if (error != null) { - // eslint-disable-next-line prefer-promise-reject-errors - return reject(`${error}\n${stderr}\n${stdout}`); - } - return resolve(stdout); - }); -}); +const execTsc = async (directory: string, args: string[]): Promise => { + const tscScript = require.resolve('typescript/bin/tsc'); + const { stdout } = await promisify(cps.execFile)( + process.execPath, + [tscScript, ...args], + { cwd: directory }, + ); + return stdout; +}; const compile = async (resolve: PathResolvers, log: Logger) => { log.debug('compiling sources and unit tests'); @@ -110,7 +109,7 @@ const compile = async (resolve: PathResolvers, log: Logger) => { ), ); - await execTsc(resolve.source('./'), `--build ${tsconfigFile}`); + await execTsc(resolve.source('./'), ['--build', tsconfigFile]); }; const copyAssets = async (resolve: PathResolvers, log: Logger) => {