*/
export async function exec(command, args, options) {
return new Promise((resolve, reject) => {
- const process = spawn(command, args, {
+ const _process = spawn(command, args, {
stdio: [
'ignore', // stdin
'pipe', // stdout
'pipe', // stderr
],
...options,
+ shell: process.platform === 'win32',
})
/**
*/
const stdoutChunks = []
- process.stderr?.on('data', chunk => {
+ _process.stderr?.on('data', chunk => {
stderrChunks.push(chunk)
})
- process.stdout?.on('data', chunk => {
+ _process.stdout?.on('data', chunk => {
stdoutChunks.push(chunk)
})
- process.on('error', error => {
+ _process.on('error', error => {
reject(error)
})
- process.on('exit', code => {
+ _process.on('exit', code => {
const ok = code === 0
const stderr = Buffer.concat(stderrChunks).toString().trim()
const stdout = Buffer.concat(stdoutChunks).toString().trim()