javascript - 退出 CLI 的问题
问题描述
我使用inquirer 和child_process 创建了简单的CLI。我有问题,当我用 CTLR+C 关闭进程时,它似乎仍在运行,因为终端没有响应任何东西。而且我每次都必须关闭终端并再次打开它,这对我来说很不舒服。我需要做什么,用简单的 CTRL+C 命令退出所有进程?在谷歌搜索了很多解决方案,但没有结果。希望有人可以帮助我
const inquirer = require('inquirer')
const { execSync } = require('child_process')
const { readdirSync } = require('fs')
const targetFolder = './src/pages'
const directories = readdirSync(targetFolder)
const questions = [
{
type: 'list',
name: 'page',
message: 'Choose page to compile',
choices: directories,
},
]
inquirer.prompt(questions).then(({ page }) => {
const options = {
stdio: 'inherit',
}
execSync(`npm run start -- --env page=${page}`, options)
})
解决方案
如果你使用async
函数或承诺,你必须用process.exit()
. 将其添加execSync
到then
通话中。
推荐阅读
- php - PHP会话销毁无法正常工作
- sql - SQL Server 日期时间未正确显示
- python - Python Turtle 窗口只弹出一秒钟
- angular - 使用 html2pdf 导出为 pdf 时图表被剪切
- wordpress - WooCommerce - 如果用户未登录,如何隐藏 2 年以上的新产品
- android - 我的相机应用程序无法在 kitkat 上运行,但在其他手机上运行
- javascript - 404 错误联系表单 7 ajax 表单提交
- javascript - 为什么 vue.js 与 axios 的语句启动较晚?
- intellij-idea - IntelliJ 缩进格式
- android - 点击文本并在 android studio 中显示弹出消息