node.js 命令行框架 yargs 和你的程序实现交互
如何让你的node.js 应用程序像shell 脚本一样和你交互?
于是就有了今天这一片博文 关于 yargs 使用分享.
大概有一种情况你需要让你的程序接收一个参数,通过这个参数我们做一系列的定制化功能.
常见的做法是 把一些不同环境不同配置的变量写到 config 配置文件中.
当你的环境变化的时候,你手动去修改你的config 中的变量来达到不同环境显示定制化的东西.
更具象的一个例子:
config文件中有一个配置项 langue
当你发布国内站点的时候,你需要配置成 langue="zh-cn"
当你发布国外站点的时候,你需要配置成 langue="en"
现在, yargs 的功能就是帮你实现类似上面这种定制化的参数功能.
从此一些简单定制参数可以彻底摆脱 config 配置了.
比如:
你的node.js 启动文件是 app.js
当你部署中文环境站点的时候,就可以这样 node app.js --l zh-cn
英文网站部署时 node app.js --l en
当然上面输入给启动文件的 -l 参数,你是可以在 app.js 文件中获取,然后对应加载你需要定制化的东东即可.
上面我们只是介绍它的作用,以及一个具体的例子让大家明白什么时候使用.下面开始介绍如何使用:
yargs
npm地址:
https://www.npmjs.com/package/yargs
github地址:
安装:
npm install --save yargs
定义命令交互参数:
var argv = require('yargs').argv; if (argv.l == 'zh-cn') { console.log('Chinese site!'); }else if(argv.l == 'en') { console.log('English website!'); }
使用:
$ ./app.js --l=zh-cn Chinese site! $ ./app.js --l=en English website!
app.js 文件中如何接受 --l 参数
var argv = require('yargs').argv; if (argv.l=='zh-cn') { //获取参数 l 的值 console.log('Chinese website!'); global.langue='zh-cn'; }else if(argv.l=='en'){ console.log('English website!'); global.langue='en'; }
上面我们通过 argv 获取 --l 参数来判断当前要运行哪个环境.
然后使用全局变量 global.langue 来标识当前运行环境.
在后面的所有个性化定制处我们都可以直接使用全局变量 global.langue 来做判断.