这里只简单介绍如何快速开发一个 CLI
,具体业务需要根据实际来开发,以下主要通过三个例子渐进式学习
- 从 0 到 1 开发命令行工具
- 命令帮助文档
- 命令行交互(input、confirm、list、checkbox 等等)
创建一个 CLI
,例子 xcli
一个可以本地运行的 CLI
,只需要两个文件即可:
- xcli/bin/xcli
#!/usr/bin/env node
console.log('Welcome to awesome-cli')
- xcli/package.json
{
"name": "xcli",
"version": "0.1.0",
"bin": {
"xcli": "bin/xcli"
}
}
通过 npm link
为此工具创建链接,方面调试和测试。
# 进入 xcli 目录
$ cd xcli
# 创建链接
$ npm link
# 执行 xcli 命令
$ xcli
Welcome to awesome-cli
命令帮助文档,例子 xnpm
一个命令行工具最基本就是工具界面,执行一个命令,输出帮助文档
commander 是一个命令行界面的解决方案,我们将使用它,结果如下:
$ xnpm
Usage: xnpm <command>
Options:
-v, --version output the version number
-h, --help output usage information
Commands:
install|i [name] install packages
run [script-name] run script
help [cmd] display help for [cmd]
$ xnpm install --save
xnpm install success ; use --save
命令行交互,例子 xvue-cli
除了帮助文档,命令还需交互,如 input、confirm、list、checkbox 等等。
inquirer 是一个用户与命令行交互的工具,我们将使用它,结果如下:
$ xvue create project
Xvue CLI v0.1.0
? Please pick a preset: (Use arrow keys)
> default (babel, eslint)
Manually select features
? Check the features needed for your project
◉ Babel
❯ ◉ TypeScript
◯ Progressive Web App (PWA) Support
◯ Router
◯ Vuex
◯ CSS Pre-processors
◉ Linter / Formatter