开发cli

Commander.js

https://github.com/tj/commander.js/blob/HEAD/Readme_zh-CN.md

Commander 使用.option() 方法来定义选项,同时可以附加选项的简介。每个选项可以定义一个短选项名称(-后面接单个字符)和一个长选项名称(–后面接一个或多个单词),使用逗号、空格或|分隔。

🌰:

package.json文件中配置:

1
2
3
"bin": {
"cess": "./bin/cain.js"
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program
.command('template <cname>')
.alias('t')
.option('-p,--path <path>', '创建模板的路径,默认为‘./’')
.option('-t,--type <type>', '创建模板的类型:base|base-table|detail|modal,默认为base')
.description('创建模板文件')
.action(function (name, option) {
const {
path,
type
} = option
createTemplate({
name,
path,
type
})
})

program.parse(process.argv);

command:执行的命令 create (这里如果执行的话,就是cess template)

option:可选参数 -p (path 创建模板路径)

alias:简写 t(命令简写为t 执行就是cess t等价于执行cess renplate)

description:命令描述

action:执行命令后所执行的方法。