从 1 到完美,用 node 写一个命令行工具

1. 中的 字段

现在,不管是前端项目还是 项目,一般都会用 做包管理工具,而 是其相关的配置信息。

对 项目而言,模块导出入口文件由 的 字段指定,而如果是要安装到命令行的工具,则是由 的 字段指定。

1.1 配置单个命令

与包名同名

这样安装的命令名称就是 。

自定义命令名称(与包名不同名)

这样安装的命令名称也是 。

1.2 配置多个命令

这样安装就有 与 两个命令。

2. 对应 文件的写法

与普通的 文件写法一样,只是前面要加上 。

这段前缀代码叫 ,具体可以参考 Shebang (Unix) - Wikipedia。

3. 安装方式3.1 全局安装

这种安装方式可以在命令行全局使用。

3.2 本地安装

这种安装方式需要配合 一起使用,比如:

4. 选择合适的命令行封装库

一般来说,一个命令都会有如下的一些参数:

或 :查看版本号

:查看帮助信息

如果完全自己来写的,就会很麻烦,尤其是帮助信息。所以,选择一个好的命令行封装库,能够帮我们省去很多工作。

用的比较多的:

commander.js

yargs

meow

以 为例。

4.1 安装

4.2 注册

注册版本号与描述:

注册参数(非子命令参数):

注册子命令:

解析:

4.3 使用

查看版本号:

运行 子命令:

查看帮助( 会自动生成):

更多用法查看 commander.js。

5. 常用的命令行相关工具库5.1 minimist 解析命令行的参数

更多参考 minimist。

5.2 chalk: 让命令行的字符带上颜色

更多参考 chalk。

5.3 Inquirer.js 让命令行与用户进行交互,如输入、选择等。

更多参考 Inquirer.js。

5.4 shelljs 跨平台 Unix shell 命令 的 node 封装

更多参考 shelljs。

5.5 blessed-contrib 命令行图表

更多参考 blessed-contrib。

5.6 cash 跨平台 linux 命令 的 node 封装

与 shelljs 功能差不多。

更多参考 cash。

5.7 prompts 又一个让命令行与用户进行交互的工具

与 Inquirer.js 功能差不多。

更多参考 prompts。

5.8 ora 命令行加载中图标

更多参考 ora。

5.9 progress 命令行进度条

更多参考 progress。

5.10 更多

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181012B0BOV400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券