yargs插件的使用,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 文件中获取,然后对应加载你需要定制化的东东即可.

上面我们只是介绍它的作用,以及一个具体的例子让大家明白什么时候使用.下面开始介绍如何使用:

二、使用

1.安装

npm install --save yargs

2. 定义命令交互参数:

1
2
3
4
5
6
var argv = require('yargs').argv;
if (argv.l == 'zh-cn') {
    console.log('Chinese site!');
}else if(argv.l == 'en') {
    console.log('English website!');
}

3. 使用

1
2
3
4
5
$ ./app.js --l=zh-cn
Chinese site!

$ ./app.js --l=en
English website!

4. 接收参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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 来做判断.

署名 - 非商业性使用 - 禁止演绎 4.0