node命令列開發

看風景就發表於2017-08-20

node命令列開發比較出名的就是commander和yargs,以及inquirer,但是很少有文章將三個模組進行對比。

這裡簡單的描述一下:

1. commander直觀,易上手,但是功能較弱,沒有引數驗證和分析

最近在用commander.js開發node命令列工具,遇到了很常見的問題,就是commander居然不支援命令選項的required檢查,也是醉了,最後使用如下方法解決:

if (!program.myoption) 
  throw new Error('--myoption required')

出處:https://stackoverflow.com/questions/24175269/commander-js-how-to-specify-required-cli-argument

2. yargs功能全面,適合複雜的命令列程式
3. inquirer是互動式的命令列工具,其形式是問題 -> 回答 -> 下一個問題 -> 再回答,
全部以問答的形式存在,沒有help命令顯示,及version資訊等,不能開發常見的命令列程式,
應該配合commander或者yargs使用

本人近期開發的we_cli使用了yargs和inquirer,效果不錯,給初學者一個參考。
地址:https://github.com/ygtzz/we_cli

 

相關文章