Node.js以命令列執行時,原本是透過process.argv取得輸入的參數,本篇介紹yargs模組除了讓我們更輕鬆地存取參數,還可建立命令列式的操作介面,如參數說明,或必要的參數等等。
使用前先使用npm下載yargs
npm install yargs --save
範例一,透過yargs取得參數。
// app.js
const yargs = require('yargs'); // 載入yargs
var argv = yargs.argv;
console.log(argv);
console.log(argv._[0]);
要取得輸入的參數可以直接使用var argv = yargs.argv
取得,例如在命令列執行時輸入以下。
node app.js "hello world"
argv
印出的內容如下
{ _: [ 'hello world' ],
help: false,
version: false,
'$0': 'app.js' }
可以看到傳入的參數被放入以_
為key的陣列中,所以透過argv._[0]
取得。
範例二,使用yargs自訂需輸入參數。
const argv = yargs
.options({
add: {
demandOption: true,
alias: 'a',
describe: 'Add new item',
string: true
}
})
.help()
.alias('help', 'h').argv;
console.log(argv.add);
argv.options()
方法可以設定需要輸入的參數,上例中設定了參數add
。
參數add
的設定中,demandOption:true
代表執行app.js
時add
為必要參數,alias
屬性設定add
參數的簡短寫法為a
,string:true
表示參數值為一段字串。
yargs.help()
提供執行時的help
的說明
yargs.alias()
將help
的簡短寫法設為h
所以執行時不輸入任何參數例如
node app.js
因為add
為必要參數,所以會跳出缺少參數的訊息,並告訴你可輸入的參數有哪些。
Options:
--version Show version number [boolean]
--add, -a Add new item [string] [required]
--help, -h Show help [boolean]
Missing required argument: add
執行時必須加上add
如下才可執行
node app.js --add "Macbook Air"
印出結果如下
Macbook Air
更多好用的api請參考這裡。
沒有留言:
張貼留言