加载中...

五、yargs 模块


shelljs 只解决了如何调用 shell 命令,而 yargs 模块能够解决如何处理命令行参数。它也需要安装。

  1. $ npm install --save yargs

yargs 模块提供 argv 对象,用来读取命令行参数。请看改写后的 hello 。

  1. #!/usr/bin/env node
  2. var argv = require('yargs').argv;
  3. console.log('hello ', argv.name);

使用时,下面两种用法都可以。

  1. $ hello --name=tom
  2. hello tom
  3. $ hello --name tom
  4. hello tom

如果将 argv.name 改成 argv.n,就可以使用一个字母的短参数形式了。

  1. $ hello -n tom
  2. hello tom

可以使用 alias 方法,指定 name 是 n 的别名。

  1. #!/usr/bin/env node
  2. var argv = require('yargs')
  3. .alias('n', 'name')
  4. .argv;
  5. console.log('hello ', argv.n);

这样一来,短参数和长参数就都可以使用了。

  1. $ hello -n tom
  2. hello tom
  3. $ hello --name tom
  4. hello tom

argv 对象有一个下划线(_)属性,可以获取非连词线开头的参数。

  1. #!/usr/bin/env node
  2. var argv = require('yargs').argv;
  3. console.log('hello ', argv.n);
  4. console.log(argv._);

用法如下。

  1. $ hello A -n tom B C
  2. hello tom
  3. [ 'A', 'B', 'C' ]

还没有评论.