之前的一篇文章前端如何写一个全局命令行?主要聊了如何写一个全局命令行以及介绍了一个辅助工具——yargs,这篇文章我们来聊聊另外一个命令行工具——commander!
初始化
![c964bd71493fc4e107a4792bb6abb5ca.png](https://img-blog.csdnimg.cn/img_convert/c964bd71493fc4e107a4792bb6abb5ca.png)
图1
首先要引入commander,parse方法用来解析命令行中传入的参数,和yargs类似,中间加入一个显示版本号的功能,我们运行一下:
![d98ee20b6871e557ce1d95538e8dfdf8.png](https://img-blog.csdnimg.cn/img_convert/d98ee20b6871e557ce1d95538e8dfdf8.png)
图2
图2中打印的版本号符合预期,很好,下面我们可以继续向代码中添加其他逻辑!
选项option
使用格式如下:
.option('-n, --name [p2]', '描述', '默认值')
- n和name分别是短长定义(可以认为n是name的简写);
- p代表选项后面跟着的参数,< >必填,[ ]选填;
- 最后两个参数分别是描述文案和选项的默认值;
![8db8df5a9d99e2afdc2dd025e357034d.png](https://img-blog.csdnimg.cn/img_convert/8db8df5a9d99e2afdc2dd025e357034d.png)
图3
如图3所示,添加了一个debug选项,运行结果如下:
![5e223bb28e984b65490037b5528c2bb3.png](https://img-blog.csdnimg.cn/img_convert/5e223bb28e984b65490037b5528c2bb3.png)
图4
如上图,无论是加-d还是--debug选项,结果都会打印true,如果不加选项就会打印undefined。下面我们就加一下默认值,看看会发生什么?