child_process && inquirer

1,706 阅读2分钟

child_process

child_process 提供了类似于popen(3)但是又不完全相同的方式生成子进程

Methods:

  • child_process.spawn(): 异步生成子进程 不会阻塞Node.js事件循环
  • child_process.spawnSync():以同步方式提供等效功能 该功能阻止事件循环 直到生成的进程退出或终止
  • 默认情况下 将在父Node.js进程与生成的子进程直接建立stdin, stdout,stderr管道
  • child_process.exec(): 生成一个shell 并在该shell中运行命令 完成后将stdout和stderr传递给回调函数
  • child_process.execSync(): child_process.exec()的同步版本,它将阻止Node.js事件循环。
  • child_process.execFile(): 与child_process.exec()类似,除了默认情况下它直接生成命令而不先生成外壳程序。
  • child_process.execFileSync(): child_process.execFile()的同步版本,它将阻止Node.js事件循环。
  • child_process.fork(): 产生一个新的Node.js进程,并使用建立的IPC通信通道调用指定的模块,该通道允许在父级和子级之间发送消息。

inquirer

inquirer.js是一个给用户提供漂亮界面和提出问题流的可嵌入式的命令行界面的插件

作用:

  • 提供错误
  • 询问操作者问题
  • 获取并解析用户输入
  • 检测用户回答是否合法
  • 管理多层级的提示

安装

 npm  install inquirer 
 ## or 
 yarn  add  inquirer 

Methods:

inquirer.prompt(questions) -> promise

  • questions: 是一个包含问题对象的数组
  • returns a Promise

inquirer.registerPrompt(name,prompt)

  • name: 新提示的名称
  • prompt: 提示对象插件本身

inquirer.createPromptModule() -> prompt function

  • 创建一个自包含的查询器模块

问题对象包含的属性:

  • type: String 提问的类型
  • name: Stirng answers回答对象中 这个问题的键
  • message: String|Function 打印出来的问题标题
  • default:String|Number|Function|Array 问题默认值
  • choices: Array|Function
  • validate: Function 接受用户输入 值合法时 函数返回true
  • filter: Function 接受用户输入 并转化后填入answer对象内
  • pageSize: Number 改变渲染列表的行数的长度

Answers

  • 是一个包含有用户客户端输入的每一个问题的答案的对象
  • 键: 问题对象的name属性
  • 值: 取决于问题的类型 confirm类型为布尔类型 Input,rawlist,list都为字符串类型

Separator

  • 可以为任意的choices数组选项添加分隔 方便在多选项时划分选项类别

Prompt types 问题类型 {type: 'xxx'}

  • List
  • Raw list
  • Expand
  • Checkbox
  • Comfirm
  • Input
  • Password
  • Editor