跳到主要内容

commander.js node.js下又一个命令交互开源包

· 阅读需 2 分钟
一介布衣
全栈开发者 / 技术写作者

上周分享了一篇关于node.js 下命令行框架 yargs 如何实现与程序交互

今天又一款强大的命令行框架开源包 commander.js

node.js 下的commander是从Ruby下同名项目移植过来的.下面我们来简单了解下.

github项目地址:https://github.com/tj/commander.js

npm 地址:https://www.npmjs.com/package/commander

使用:

npm install --save commander

var commander = require('commander');

//定义参数
commander.
.version('1.0.0')
.usage('[options] [value ...]')
.option('-l, --message <string>', 'website langueage');

commander.version 可以指定当前应用程序的一个版本号.

usage 指定使用方法,这里让我们输入一直值.

option 指定参数,格式,及参数说明.

这里的示例和上一篇博文一样,我们还是用站点中英文语言为例.

app.js 代码如下:

var commander = require('commander');

commander
.version('1.0.0')
.usage('[options] [value ...]')
.option('-l, --langu', 'website langueage')
.parse(process.argv);

if (commander.langu == 'zh-cn') {
console.log('Chinese website!');
}else if(commander.langu == 'en') {
console.log('English website!');
}

启动app.js 时,接受一个 -l 的参数

$node app.js -l zh-cn
Chinese website!

$node app.js -l en
Chinese website!

commander 可以自定义帮助信息

commander.on('help', function() {  
console.log(' # website langueage ')
console.log(' $ ./app.js -l \"a string zh-cn or en \" ')
console.log('')
});