`
witcheryne
  • 浏览: 1099577 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用Commander.js驯服node.js的命令行参数

    博客分类:
  • node
 
阅读更多

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.jshttps://github.com/visionmedia/commander.js

Ruby Commanderhttps://github.com/visionmedia/commander

 

0
1
分享到:
评论

相关推荐

    commander.js:node.js命令行界面变得简单

    Commander.js 命令行界面的完整解决方案。 用其他语言阅读:英语| 有关本文档中使用的信息,请参阅: 安装 npm install commander 声明程序变量 Commander导出一个全局对象,该对象便于快速编程。 为了简洁起见,...

    Node.js命令行接口变得简单.zip

    2. **运行JavaScript**:在命令行中,使用`node`命令后跟JavaScript文件的路径,即可执行JS代码,如`node script.js`。 3. **全局安装模块**:使用`npm install -g`命令可以全局安装NPM包,使其在任何目录下都可以...

    Commander.js:node.js命令行界面变得简单-开源

    node.js命令行界面的完整解决方案。 Commander导出一个全局对象,这对于快速程序很方便。 对于可能以多种方式(包括单元测试)使用Commander的较大程序,最好创建要使用的本地Command对象。 每个选项可以包含一个短...

    Node.js-使用ethers.js实现的CryptoKitties简单命令行界面和库

    在本文中,我们将深入探讨如何使用Node.js和ethers.js库来创建一个针对CryptoKitties的简单命令行界面(CLI)。CryptoKitties是一款基于以太坊区块链的热门游戏,玩家可以繁殖、买卖和收藏虚拟猫咪。ethers.js是一个...

    Node.js-用于创建Node.js命令行工具的样板

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端使用 JavaScript 进行编程,极大地拓宽了 JavaScript 的应用领域。Node.js 的一个强大特性是其内置的非阻塞I/O模型,使得它非常...

    Node.js-v2ex-cli命令行客户端

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 编程,打破了 JavaScript 原本只能在浏览器中运行的限制。v2ex-cli 是一个利用 Node.js 开发的命令行工具,专...

    Node.js-☀️MetaWeather的命令行界面CLI

    1. **命令行接口**:使用Node.js的`readline`模块或第三方库如`commander`来解析命令行输入,接收用户的各种查询参数,如城市名、日期等。 2. **HTTP请求**:Node.js的`http`或`https`模块可以用来发送GET请求到...

    Inquirer.js-常见的交互式命令行用户接口的集合

    此外,Inquirer.js与其它Node.js命令行库的集成非常方便,如`commander.js`用于处理命令行参数,`ora`用于显示加载指示器,以及`chalk`用于颜色化输出。这样的组合可以让开发者构建出功能完备且视觉效果出色的命令行...

    ERD.Commander.2005.Boot.CD汉化加强版.part2.rar

    .Commander.2005.Boot.CD汉化加强版.part2.rar

    使用 Node.js 开发命令行工具-3课时 课件源码.zip

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它以其高效、轻量级和跨平台的特性,使得开发命令行工具变得简单而强大。通过学习这3个课时的内容,你将能够创建自己的命令行应用程序,提升日常工作效率...

    Node.js-Slackadaisical一个命令行Slack聊天客户端

    此外,`commander`用于处理命令行参数,`inquirer`用于用户交互,这些模块都是Node.js生态系统的一部分,大大简化了开发过程。 **6. 性能与效率** 由于Node.js的非阻塞I/O模型,`Slackadaisical`在处理大量并发请求...

    JavaScript_Nodejs命令行接口变得简单.zip

    "JavaScript Nodejs命令行接口变得简单.zip"这个压缩包文件,从标题来看,显然是关于如何使用JavaScript通过Node.js来创建和操作命令行接口(CLI)的教程或资源。 命令行接口是计算机用户与操作系统交互的一种方式...

    ERD.Commander.2005.Boot.汉化加强版.part1

    ERD.Commander.2005.Boot.CD汉化加强版.part1

    Node.js-snapkit通过命令行或RESTAPI对网站进行截屏

    2. **命令行工具开发**:学习如何在Node.js中创建命令行工具,了解命令行参数解析库如yargs或commander的使用。 3. **REST API设计与实现**:理解RESTful架构风格,学习如何使用Express.js或其他Node.js框架构建API...

    Node.js-pjs-PipeableJavaScript.从命令行快速过滤映射简化

    使用Node.js开发命令行应用时,通常会用到`commander`或`yargs`这样的库来解析命令行参数。pjs则提供了一种不同的方式,它允许你直接在命令行中编写JavaScript代码,无需额外的配置。这使得开发和调试过程更加直观,...

    nodejs命令行参数处理模块commander使用实例.docx

    总结来说,`commander`是Node.js开发中处理命令行参数的强大工具,它简化了选项定义、帮助信息生成以及自定义解析逻辑的过程,极大地提高了开发效率和代码可读性。无论你是构建简单的CLI工具还是复杂的命令行应用,`...

    Node.js-每天大红包·最新饿了么红包接口Node.js封装

    标题 "Node.js-每天大红包·最新饿了么红包接口Node.js封装" 指的是一个使用Node.js编写的程序,该程序实现了调用饿了么平台的红包接口功能。在Node.js环境中,开发者可以利用JavaScript进行服务器端编程,这个项目...

    commander-demo:指挥官.js演示

    Commander.js是JavaScript中用于构建命令行接口(CLI)的强大工具,它允许开发者轻松地创建具有子命令、选项和参数的命令行应用。这个"commander-demo"是一个演示项目,展示了如何利用commander.js实现类似Git命令行...

Global site tag (gtag.js) - Google Analytics