shelljs 只解決了如何調用 shell 命令,而 yargs 模塊能夠解決如何處理命令行參數。它也需要安裝。
~~~
$ npm install --save yargs
~~~
yargs 模塊提供 argv 對象,用來讀取命令行參數。請看改寫后的 hello 。
~~~
#!/usr/bin/env node
var argv = require('yargs').argv;
console.log('hello ', argv.name);
~~~
使用時,下面兩種用法都可以。
~~~
$ hello --name=tom
hello tom
$ hello --name tom
hello tom
~~~
如果將 argv.name 改成 argv.n,就可以使用一個字母的短參數形式了。
~~~
$ hello -n tom
hello tom
~~~
可以使用 alias 方法,指定 name 是 n 的別名。
~~~
#!/usr/bin/env node
var argv = require('yargs')
.alias('n', 'name')
.argv;
console.log('hello ', argv.n);
~~~
這樣一來,短參數和長參數就都可以使用了。
~~~
$ hello -n tom
hello tom
$ hello --name tom
hello tom
~~~
argv 對象有一個下劃線(_)屬性,可以獲取非連詞線開頭的參數。
~~~
#!/usr/bin/env node
var argv = require('yargs').argv;
console.log('hello ', argv.n);
console.log(argv._);
~~~
用法如下。
~~~
$ hello A -n tom B C
hello tom
[ 'A', 'B', 'C' ]
~~~