摘要:均可用于為命令行工具生成幫助庫。的執行結果返回一個對象。可選根據生成幫助文本參數是否顯示的指定數據去覆蓋和文本將改變的文本內容改為生成的幫助文本為指定的生成拓展的幫助文本。是在幫助文本中放置在之前的可選字符串。特殊的用于打印幫助信息
Optionator, Commander均可用于為Node命令行工具(CLI)生成幫助庫。
源碼:https://github.com/cuizhirong...
OptionatorOptionator是一個JavaScript選項解析和幫助生成庫。
npm install optionator
require("optionator")返回一個function,一個VERSION參數(optionator的版本)。
function接收一個對象參數,參數中包含配置信息。function的執行結果返回一個對象。
var optionator = require("optionator")({ prepend: "Usage: cmd [options]", append: "Version 1.0.1", options: [{ option: "help", alias: "h", type: "Boolean", description: "displays help" }, { option: "count", alias: "c", type: "Int", description: "number of things", longDescription: "text longDescription", example: "cmd --count 2" }] }); const options = optionator.parseArgv(process.argv); if (options.help) { console.log(optionator.generateHelp()); }
parse(input, parseOptions)
根據settings處理輸入,并返回包含結果的對象。
參數:
input-想要解析的內容
parseOptions-Int型,表示input是數組還是字符串,默認0是字符串,2是數組
returns:解析后的對象
parseArgv(input)
parseArgv和parse相似,但是parseArgv只接收數組,切掉前兩個元素。
parseArgv(process.argv)
generateHelp(helpOptions(可選))
根據settings生成幫助文本
參數:
helpOptions{showHidden: Boolean, interpolate: Object}
showHidden: 是否顯示hidden的option
interpolate: 指定數據去覆蓋prepend和append文本
//將改變append的文本內容:Version {{version}} 改為 Version 0.4.2 generateHelp({interpolate: {version: "0.4.2"}})
return: String-生成的幫助文本
generateHelpForOption(optionName)
為指定的optionName生成拓展的幫助文本。如果option有example,則會顯示這個example。如果指定了longDescription,它將顯示longDescription而不顯示Description。
generateHelpForOption("count");
Settings格式
prepend: 是在幫助文本中放置在options之前的可選字符串。
append: 是在幫助文本中放置在options之前的可選字符串。
options: 配置信息的數組
helpStyle: 對象,改變一些默認樣式
Options格式
option(必須) 名字
alias(可選) 縮寫
type(必須) 類型,被用作驗證輸入值
description(可選) 介紹
example(可選) option的例子-當generateHelpForOption被調用的時候才會打印
required(可選) 設置為true時,如果沒有定義這個參數打印將會失敗
Commander提供了用戶命令行輸入和參數解析的強大功能。
npm install commander --save
#! /usr/bin/env node var program = require("commander"); program .version("0.0.1") .option("-p, --pepprs", "Add peppers", function() { console.log("-p, --pepprs callback"); }) .option("-b, --bbq-sauce", "Add bbq sauce") .option("-c | --control-thing", "Add ct") .parse(process.argv); if (program.controlThing) console.log(" - cttt");
Options在Commander中通過.option()定義。例子中解析了來自process.argv的參數和options(--help默認添加)
option()接收四個參數;
第一個參數是option名稱,"short option, long option" 或者寫成 "short option | long option"; long option中多個單詞組成的,比如--template-engine將被解析成駝峰式命名templateEngine; 在short/long option之后還可以指定參數(
第二個參數是option的描述;
第三個參數是回調函數;
第四個參數是回調函數默認值。
對于未定義的option,程序會拋出錯誤,如下圖的第一條命令; Commander的解決方法是提供方法.allowUnknownOption(), 直接退出取消這個自動報錯機制, 如下圖的第二條命令。
Command-特殊的options
program .command("rm") .option("-r, --recursive ", "Remove recursively") .action(function (dir, cmd) { console.log("dir " + dir + " cmd " + cmd); });
.outputHelp(cb) .help(cb)用于打印幫助信息
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96535.html
摘要:比如一個模板用于創建的組件庫,一個模板用于創建的組件庫,還有一個模板用于創建的工具函數類庫。 緣起 最近公司內部想搭建一個私有的 npm 倉庫,用于將平時用到次數相當頻繁的工具或者組件獨立出來,方便單獨管理,隨著項目的規模變大,數量變多,單純的復制粘粘無疑在優雅以及實用性上都無法滿足我們的需求,所以進一步模塊化是必然的。 但是一個組件庫的建立其實是一個非常麻煩的過程,基礎 webpac...
摘要:但是,項目中的一些公共封裝,比如公共的組件公用的功能模塊等是可以使用單元測試的。因此特為組件庫引入單元測試,目的在于能減少組件的,避免重復的發布不必要的包。 項目github地址:https://github.com/yuanalina/installAsRequired這里必須要提前說明,前端項目的單元測試不是必須的,特別是業務型項目,增加單元測試反而會成為累贅,增加開發成本且無意義...
摘要:以為例,編寫來幫助我們完成重復的工作編譯壓縮我只要執行一下就可以檢測到文件的變化,然后為你執行一系列的自動化操作,同樣的操作也發生在這些的預處理器上。的使用是針對第三方類庫使用各種模塊化寫法以及語法。 showImg(https://segmentfault.com/img/bVbtZYK); 一:前端工程化的發展 很久以前,互聯網行業有個職位叫做 軟件開發工程師 在那個時代,大家可能...
摘要:以下簡單介紹的重大變化。狀態轉交及對的支持這樣更便于在服務端和客戶之間共享應用狀態。狀態轉交的相關文檔幾周后會發布。我們刪除很多以前廢棄的如,也公布了一些新的廢棄項。以上指南會詳細介紹這些變更。已知問題當前已知與相關的問題。 我們很高興地宣布Angular 5.0.0——五角形甜甜圈發布啦!這又是一個主版本,包含新功能并修復了很多bug。它再次體現了我們把Angular做得更小、更快、...
閱讀 1969·2021-10-25 09:48
閱讀 2798·2021-09-22 14:59
閱讀 1761·2019-08-29 16:52
閱讀 866·2019-08-29 16:07
閱讀 2308·2019-08-29 12:38
閱讀 1761·2019-08-26 13:23
閱讀 883·2019-08-26 11:49
閱讀 3277·2019-08-26 10:56