我正在创建 make node CLI 自动化我的 npm 包发布,我对这个问题感到震惊。在所有确认之后,我想运行该命令semantic-release但问题它有自己的提示我目前使用 exec 命令但它没有显示由创建的任何提示 semantic-release
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); });
stdio您可以通过生成一个从父进程继承其管道的同步子进程来显示提示。
stdio
import { spawnSync } from 'child_process'; let { status } = spawnSync('./test.sh', [], { stdio: 'inherit' }); if (status > 0) { throw new Error('spawned process exited abnormally'); }
#!/bin/bash read -p 'enter something: ' value [ -z "$value" ] && exit 1 echo "$value"