在用了Vue的脚手架工具以后,发现设计的非常好,简洁直观。因此,起念想要学习一下怎么使用Node来创建一个命令行工具
Vue的脚手架工具
梳理
-
package.json:记录了Node项目的基本信息、依赖、自定义脚本命令 -
CMD的命令查找:先从当前目录中查找,(如果没有)再从系统的环境变量PATH中查找
逻辑
从Vue脚手架这个优秀的例子出发,在安装完Vue的脚手架工具以后,我们就可以在任何目录下,使用npm create vue <project-name>命令,就可以在当前目录下构建一个Vue项目。
首先,要实现这样的效果就要在package.json中添加bin配置项,添加后在使用npm install -g <package-name>安装后,npm会在系统环境变量PATH中添加我们在bin配置项中设置的命令名称,并且将这个命令指向配置的js文件,这样就可以在任意目录下面使用这个命令了
{
"bin":{
"cli":'cli/index.js'
}
} 其次,要实现简洁直观的外观,可以使用第三方库来方便的达到效果
最后,要注意开发环境和生产环境使用命令行工具的权限问题
开发环境:设置执行权限:chmod +x bin/cli.js
生产环境:npm会自行配置文件权限,确保可用
流程
-
配置
package.json{ "bin":{ "cli":'cli/index.js' } } -
编写
index.js文件#! /usr/bin/env node //逻辑部分 -
链接
npm link,执行后就执行路径:2 --- 3 --- PATH
总结
使用场景
跨平台
- 项目构建工具
- 自动化
- 数据处理
三方库(美化)
字体样式
| 库 | 简介 | 导入方式 | 地址 |
|---|---|---|---|
| chalk | 粗体、下划线、背景色 | import chalk from "chalk" |
npm |
| colorette | chalk 的简化版,粗体、下划线、背景色 | import { blue, bold, underline } from "colorette" |
npm |
参数解析
| 库 | 简介 | 导入方式 | 地址 |
|---|---|---|---|
| commander | 用来处理命令、参数、选项,自动生成帮助信息 | import { Command } from "commander" |
npm |
动态效果
| 库 | 简介 | 导入方式 | 地址 |
|---|---|---|---|
| cli-progress | 进度条 | import { SingleBar, Presets } from "cli-progress" |
npm |
| ora | 加载动画 | import ora from "ora" |
npm |
表格
| 库 | 简介 | 导入方式 | 地址 |
|---|---|---|---|
| cli-table3 | 表格显示数据,让结构更清晰 | import Table from "cli-table3" |
npm |
艺术字
| 库 | 简介 | 导入方式 | 地址 |
|---|---|---|---|
| figlet | 打印醒目的标题 | import figlet from "figlet" |
npm |
交互式输入
| 库 | 简介 | 导入方式 | 地址 |
|---|---|---|---|
| inquirer | 选择菜单、确认、输入框 | import inquirer from "inquirer" |
npm |
