hemsl is a lightweight Node.js command line argv parser and command executor
White flowers Komatsu, scientific name: Villadia batesii (Hemsl.) Baehni & Macbride, Sedum, Tulian perennial multi-meat plants, flowering generally 4 to 5 months. White flowers Komatsu leaves more beautiful, there is a certain ornamental value; potted plants can be placed on the TV, the computer can absorb radiation, can also be planted in the room to absorb formaldehyde and other substances, purify the air.
$ npm install hemsl --save
$ yarn add hemsl
var Args = require('hemsl');
var args = new Args();
args
.version('1.1.0')
.bin('example');
args
.option(, {
option: 'debug',
default: true,
describe: 'Print debug log (global option)',
alias: 'd'
})
.option({
option: 'grep <expression>',
default: true,
describe: 'Debug log filter (global option)',
alias: 'g'
});
args.command({
command: 'start <port> [ip]',
describe: 'Start a local server',
usage: 'example start <port> [ip] [options]',
/**
* The `start` command handle
* Start a local server
*/
fn: function(port, ip){
console.log('Server started at', 'http://' + ip + ':' + port);
var http = require('http');
var server = http.createServer(function(req, res){
console.log(req.method.bold.gray, req.url);
res.end(req.url);
})
server.listen(port, ip);
}
})
There are two ways to add an option to a command:
- Method 1: Call the
args.command()
method and set the configuration fieldoptions
- Method 2: Call the
args.command().option()
method
args.command({
command: 'start <port> [ip]',
describe: '...',
usage: '...',
fn: function(port, ip){
//...
},
options: {
'p': {
default: '',
describe: 'service port',
alias: 'port',
usage: ''
},
'hot-reload': {
alias: 'H',
describe: 'enable hot reload'
}
}
});
args.command({
command: 'start <port> [ip]',
// ...
})
.option({
option: 'date-format',
default: 'yyyy-MM-dd',
alias: 'R',
describe: 'date format string'
})
.option({
option: 'time-format',
alias: 'm',
default: 'HH:mm:ss',
describe: 'time format string'
})
Kind: global class
参数解析
Param | Type | Default | Description |
---|---|---|---|
config | Object |
配置对象 | |
[config.__] | Boolean |
false |
是否停止解析-- 后面的内容 |
[config.colors] | Object |
文本颜色配置 | |
[config.colors.title] | String |
'white' |
标题文本颜色 |
[config.colors.command] | String |
'white' |
命令名称文本颜色 |
[config.colors.option] | String |
'white' |
Option文本颜色 |
[config.colors.paragraph] | String |
'gray' |
段落文本颜色 |
[config.colors.parameter] | String |
'gray' |
参数文本颜色 |
解析参数,返回解析后的参数对象。如果参数execute
为true
,自动执行argv中的命令
Kind: instance method of Args
Returns: Object
- 解析后的对象
Access: public
Param | Type | Default | Description |
---|---|---|---|
[argv] | Array |
process.argv.slice(2) |
要解析的参数数组 |
[execute] | Boolean |
false |
是否自动执行参数中的命令 |
args.execute() ⇒ Args
执行命令
Kind: instance method of Args
Access: public
args.option(key, config) ⇒ Args
添加全局选项
Kind: instance method of Args
Access: public
Param | Type | Description |
---|---|---|
key | String |
选项名称 |
config | Object |
选项配置 |
args.command(cmd, config) ⇒ Command
添加命令
Kind: instance method of Args
Access: public
Param | Type | Description |
---|---|---|
cmd | String |
命令名称 |
config | Object |
命令配置 |
args.help([cmdName]) ⇒ Args
显示自动生成的帮助信息,如果指定了命令名称,则显示对应命令的帮助信息
Kind: instance method of Args
Access: public
Param | Type | Description |
---|---|---|
[cmdName] | String |
命令名称 |
args.version(ver) ⇒ Args
设置App版本号,默认值为1.0.0。这个版本号会在全局-v/--version的时候显示
Kind: instance method of Args
Access: public
Param | Type | Description |
---|---|---|
ver | String |
版本号 |
args.bin(binName) ⇒ Args
设置App的命令名称
Kind: instance method of Args
Access: public
Param | Type | Description |
---|---|---|
binName | String |
名称 |
Kind: global class
创建命令
Param | Type | Description |
---|---|---|
cmd | String |
命令名称 |
config | Object |
配置参数 |
config.usage | String |
命令使用帮助 |
config.describe | String |
命令描述信息 |
config.fn | function |
执行命令时调用的函数 |
config.options | Object |
命令支持的选项(option) |
command.option(key, opt) ⇒ Command
为命令创建一个选项
Kind: instance method of Command
Access: public
Param | Type | Description |
---|---|---|
key | String |
选项名称 |
opt | Object |
选项配置 |