mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-04 12:17:37 +08:00
4e99d0b5ba
* 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
28 lines
780 B
TypeScript
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)
|
|
})
|