element-plus/build/utils/process.ts
三咲智子 4e99d0b5ba
build!: simplify build & support esm import (#4018)
* build!: simplify build & support native esm import

* build: refactor build

* refactor: reorganize files

* refactor: refactor build

* build: improve perf

* fix: scripts

* build: add rollup-plugin-filesize

* chore: scripts ignore no-console

* build: disable tree-shaking

* build: improve code

* build: add sourcemap

* build: add banner

* refactor: remove annotation

* build!: improve esm exports (#3871)

* build: improve esm import

* refactor: change mjs for esm version

* chore: improve exports map

* fix: add sideEffects

* refactor: improve alias

* build: upgrade dependencies
2021-10-25 17:07:48 +08:00

28 lines
780 B
TypeScript

import { spawn } from 'child_process'
import { green } from 'chalk'
import { projRoot } from './paths'
export const run = async (command: string, cwd: string = projRoot) =>
new Promise<void>((resolve, reject) => {
const [cmd, ...args] = command.split(' ')
console.log(`run: ${green(`${cmd} ${args.join(' ')}`)}`)
const app = spawn(cmd, args, {
cwd,
stdio: 'inherit',
shell: process.platform === 'win32',
})
const onProcessExit = () => app.kill('SIGHUP')
app.on('close', (code) => {
process.removeListener('exit', onProcessExit)
if (code === 0) resolve()
else
reject(
new Error(`Command failed. \n Command: ${command} \n Code: ${code}`)
)
})
process.on('exit', onProcessExit)
})