小编典典

如何在节点子进程 exec 中运行具有自己选项的命令

all

我正在创建 make node CLI 自动化我的 npm 包发布,我对这个问题感到震惊。在所有确认之后,我想运行该命令semantic-release但问题它有自己的提示我目前使用 exec 命令但它没有显示由创建的任何提示 semantic-release

Code

const timer = showLoading(`running ${chalk.blue(command)} `);
exec(command, (error, stdout, stderr) => {
                process.stdout.write(chalk.dim(`\r running ${chalk.blue(command)}   `));
                clearInterval(timer);
                defaults.onFinish();
                if (error) {
                    defaults.onError(error);
                    console.log(error);
                }
                defaults.onSuccess(stdout);
                console.log(stdout);
            });

阅读 64

收藏
2022-06-07

共1个答案

小编典典

stdio您可以通过生成一个从父进程继承其管道的同步子进程来显示提示。

JS:

import { spawnSync } from 'child_process';
let { status } = spawnSync('./test.sh', [], { stdio: 'inherit' });
if (status > 0) { throw new Error('spawned process exited abnormally'); }

test.sh

#!/bin/bash
read -p 'enter something: ' value
[ -z "$value" ] && exit 1
echo "$value"
2022-06-07