node命令行开发

node命令行开发比较出名的就是commander和yargs,以及inquirer,但是很少有文章将三个模块进行对比。

这里简单的描述一下:

1. commander直观,易上手,但是功能较弱,没有参数验证和分析

最近在用commander.js开发node命令行工具,遇到了很常见的问题,就是commander居然不支持命令选项的required检查,也是醉了,最后使用如下方法解决:

if (!program.myoption) 
  throw new Error('--myoption required')

出处:https://stackoverflow.com/questions/24175269/commander-js-how-to-specify-required-cli-argument

2. yargs功能全面,适合复杂的命令行程序
3. inquirer是交互式的命令行工具,其形式是问题 -> 回答 -> 下一个问题 -> 再回答,
全部以问答的形式存在,没有help命令显示,及version信息等,不能开发常见的命令行程序,
应该配合commander或者yargs使用

4. 命令行入口文件首行必须添加  #!/usr/bin/env node 来指明脚本的解释器,/usr/bin/env 用来告诉用户到path目录下去寻找node,这样能够找到不同系统正确的node位置

 

posted @ 2017-08-20 19:07  全玉  阅读(482)  评论(0编辑  收藏  举报