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請參考這裡。
沒有留言:
張貼留言