Commander.js是Ruby中Commander在node.js中的实现.为commandline程序提供强大的参数解析能力.
如何使用
新建 nodecmd.js 文件,加入如下代码:
#!/usr/bin/env node
var program = require('commander');
function range (val) {
return val.split('..').map(Number);
}
function list (val) {
return val.split(',')
}
//定义参数,以及参数内容的描述
program
.version('0.0.1')
.usage('[options] [value ...]')
.option('-m, --message <string>', 'a string argument')
.option('-i, --integer <n>', 'input a integet argument.', parseInt)
.option('-f, --float <f>', 'input a float arg', parseFloat)
.option('-l, --list <items>', 'a list', list)
.option('-r, --range <a>..<b>', 'a range', range)
//添加额外的文档描述
program.on('help', function() {
console.log(' Examples:')
console.log('')
console.log(' # input string, integer and float')
console.log(' $ ./nodecmd.js -m \"a string\" -i 1 -f 1.01')
console.log('')
console.log(' # input range 1 - 3')
console.log(' $ ./nodecmd.js -r 1..3')
console.log('')
console.log(' # input list: [1,2,3]')
console.log(' $ ./nodecmd.js -l 1,2,3')
console.log('')
});
//解析commandline arguments
program.parse(process.argv)
//输出结果
console.info('--messsage:')
console.log(program.message);
console.info('--integer:')
console.log(program.integer)
console.info('--range:')
console.log(program.range)
console.info('--list:')
console.log(program.list)
效果:
m-lv:node lvjian$ ./nodecmd.js -v
0.0.1
m-lv:node lvjian$
m-lv:node lvjian$ ./nodecmd.js -m 'node cmd' -i 1 -f 2.0 -r 1..10 -l 1,2,3,4
--messsage:
node cmd
--integer:
1
--range:
[ 1, 10 ]
--list:
[ '1', '2', '3', '4' ]
m-lv:node lvjian$
m-lv:node lvjian$ ./nodecmd.js -h
Examples:
# input string, integer and float
$ ./nodecmd.js -m "a string" -i 1 -f 1.01
# input range 1 - 3
$ ./nodecmd.js -r 1..3
# input list: [1,2,3]
$ ./nodecmd.js -l 1,2,3
Usage: nodecmd.js [options] [value ...]
Options:
-v, --version output the version number
-m, --message <string> a string argument
-i, --integer <n> input a integet argument.
-f, --float <f> input a float arg
-l, --list <items> a list
-r, --range <a>..<b> a range
-h, --help output usage information
m-lv:node lvjian$
参考资料:
Commander.js: https://github.com/visionmedia/commander.js
Ruby Commander: https://github.com/visionmedia/commander
分享到:
相关推荐
Commander.js 命令行界面的完整解决方案。 用其他语言阅读:英语| 有关本文档中使用的信息,请参阅: 安装 npm install commander 声明程序变量 Commander导出一个全局对象,该对象便于快速编程。 为了简洁起见,...
2. **运行JavaScript**:在命令行中,使用`node`命令后跟JavaScript文件的路径,即可执行JS代码,如`node script.js`。 3. **全局安装模块**:使用`npm install -g`命令可以全局安装NPM包,使其在任何目录下都可以...
node.js命令行界面的完整解决方案。 Commander导出一个全局对象,这对于快速程序很方便。 对于可能以多种方式(包括单元测试)使用Commander的较大程序,最好创建要使用的本地Command对象。 每个选项可以包含一个短...
在本文中,我们将深入探讨如何使用Node.js和ethers.js库来创建一个针对CryptoKitties的简单命令行界面(CLI)。CryptoKitties是一款基于以太坊区块链的热门游戏,玩家可以繁殖、买卖和收藏虚拟猫咪。ethers.js是一个...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端使用 JavaScript 进行编程,极大地拓宽了 JavaScript 的应用领域。Node.js 的一个强大特性是其内置的非阻塞I/O模型,使得它非常...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 编程,打破了 JavaScript 原本只能在浏览器中运行的限制。v2ex-cli 是一个利用 Node.js 开发的命令行工具,专...
1. **命令行接口**:使用Node.js的`readline`模块或第三方库如`commander`来解析命令行输入,接收用户的各种查询参数,如城市名、日期等。 2. **HTTP请求**:Node.js的`http`或`https`模块可以用来发送GET请求到...
此外,Inquirer.js与其它Node.js命令行库的集成非常方便,如`commander.js`用于处理命令行参数,`ora`用于显示加载指示器,以及`chalk`用于颜色化输出。这样的组合可以让开发者构建出功能完备且视觉效果出色的命令行...
.Commander.2005.Boot.CD汉化加强版.part2.rar
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它以其高效、轻量级和跨平台的特性,使得开发命令行工具变得简单而强大。通过学习这3个课时的内容,你将能够创建自己的命令行应用程序,提升日常工作效率...
此外,`commander`用于处理命令行参数,`inquirer`用于用户交互,这些模块都是Node.js生态系统的一部分,大大简化了开发过程。 **6. 性能与效率** 由于Node.js的非阻塞I/O模型,`Slackadaisical`在处理大量并发请求...
"JavaScript Nodejs命令行接口变得简单.zip"这个压缩包文件,从标题来看,显然是关于如何使用JavaScript通过Node.js来创建和操作命令行接口(CLI)的教程或资源。 命令行接口是计算机用户与操作系统交互的一种方式...
ERD.Commander.2005.Boot.CD汉化加强版.part1
2. **命令行工具开发**:学习如何在Node.js中创建命令行工具,了解命令行参数解析库如yargs或commander的使用。 3. **REST API设计与实现**:理解RESTful架构风格,学习如何使用Express.js或其他Node.js框架构建API...
使用Node.js开发命令行应用时,通常会用到`commander`或`yargs`这样的库来解析命令行参数。pjs则提供了一种不同的方式,它允许你直接在命令行中编写JavaScript代码,无需额外的配置。这使得开发和调试过程更加直观,...
总结来说,`commander`是Node.js开发中处理命令行参数的强大工具,它简化了选项定义、帮助信息生成以及自定义解析逻辑的过程,极大地提高了开发效率和代码可读性。无论你是构建简单的CLI工具还是复杂的命令行应用,`...
标题 "Node.js-每天大红包·最新饿了么红包接口Node.js封装" 指的是一个使用Node.js编写的程序,该程序实现了调用饿了么平台的红包接口功能。在Node.js环境中,开发者可以利用JavaScript进行服务器端编程,这个项目...
Commander.js是JavaScript中用于构建命令行接口(CLI)的强大工具,它允许开发者轻松地创建具有子命令、选项和参数的命令行应用。这个"commander-demo"是一个演示项目,展示了如何利用commander.js实现类似Git命令行...