国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CLI生成幫助庫(kù)的工具

molyzzx / 2640人閱讀

摘要:均可用于為命令行工具生成幫助庫(kù)。的執(zhí)行結(jié)果返回一個(gè)對(duì)象。可選根據(jù)生成幫助文本參數(shù)是否顯示的指定數(shù)據(jù)去覆蓋和文本將改變的文本內(nèi)容改為生成的幫助文本為指定的生成拓展的幫助文本。是在幫助文本中放置在之前的可選字符串。特殊的用于打印幫助信息

Optionator, Commander均可用于為Node命令行工具(CLI)生成幫助庫(kù)。

源碼:https://github.com/cuizhirong...

Optionator

Optionator是一個(gè)JavaScript選項(xiàng)解析和幫助生成庫(kù)。

npm install optionator

require("optionator")返回一個(gè)function,一個(gè)VERSION參數(shù)(optionator的版本)。
function接收一個(gè)對(duì)象參數(shù),參數(shù)中包含配置信息。function的執(zhí)行結(jié)果返回一個(gè)對(duì)象。

  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)
根據(jù)settings處理輸入,并返回包含結(jié)果的對(duì)象。

參數(shù):
input-想要解析的內(nèi)容
parseOptions-Int型,表示input是數(shù)組還是字符串,默認(rèn)0是字符串,2是數(shù)組

returns:解析后的對(duì)象

parseArgv(input)
parseArgv和parse相似,但是parseArgv只接收數(shù)組,切掉前兩個(gè)元素。

  parseArgv(process.argv)

generateHelp(helpOptions(可選))
根據(jù)settings生成幫助文本

參數(shù):
helpOptions{showHidden: Boolean, interpolate: Object}
showHidden: 是否顯示hidden的option
interpolate: 指定數(shù)據(jù)去覆蓋prependappend文本

//將改變append的文本內(nèi)容:Version {{version}} 改為 Version 0.4.2
generateHelp({interpolate: {version: "0.4.2"}}) 

return: String-生成的幫助文本

generateHelpForOption(optionName)
為指定的optionName生成拓展的幫助文本。如果option有example,則會(huì)顯示這個(gè)example。如果指定了longDescription,它將顯示longDescription而不顯示Description。

generateHelpForOption("count");

Settings格式

prepend: 是在幫助文本中放置在options之前的可選字符串。

append: 是在幫助文本中放置在options之前的可選字符串。

options: 配置信息的數(shù)組

helpStyle: 對(duì)象,改變一些默認(rèn)樣式

Options格式

option(必須) 名字

alias(可選) 縮寫

type(必須) 類型,被用作驗(yàn)證輸入值

description(可選) 介紹

example(可選) option的例子-當(dāng)generateHelpForOption被調(diào)用的時(shí)候才會(huì)打印

required(可選) 設(shè)置為true時(shí),如果沒(méi)有定義這個(gè)參數(shù)打印將會(huì)失敗

Commander

提供了用戶命令行輸入和參數(shù)解析的強(qiáng)大功能。

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");
OptionsCommander中通過(guò).option()定義。例子中解析了來(lái)自process.argv的參數(shù)和options(--help默認(rèn)添加)

option()接收四個(gè)參數(shù);

第一個(gè)參數(shù)是option名稱,"short option, long option" 或者寫成 "short option | long option"; long option中多個(gè)單詞組成的,比如--template-engine將被解析成駝峰式命名templateEngine; 在short/long option之后還可以指定參數(shù)(必填參數(shù), [db]可選參數(shù))

第二個(gè)參數(shù)是option的描述;
第三個(gè)參數(shù)是回調(diào)函數(shù);
第四個(gè)參數(shù)是回調(diào)函數(shù)默認(rèn)值。

對(duì)于未定義的option,程序會(huì)拋出錯(cuò)誤,如下圖的第一條命令; Commander的解決方法是提供方法.allowUnknownOption(), 直接退出取消這個(gè)自動(dòng)報(bào)錯(cuò)機(jī)制, 如下圖的第二條命令。

Command-特殊的options
program
  .command("rm ")
  .option("-r, --recursive ", "Remove recursively")
  .action(function (dir, cmd) {
    console.log("dir " + dir + " cmd " + cmd);
  });

.outputHelp(cb) .help(cb)用于打印幫助信息

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96535.html

相關(guān)文章

  • 構(gòu)建一個(gè)用于創(chuàng)建組件庫(kù)的項(xiàng)目腳手架工具(類 Vue-cli3)

    摘要:比如一個(gè)模板用于創(chuàng)建的組件庫(kù),一個(gè)模板用于創(chuàng)建的組件庫(kù),還有一個(gè)模板用于創(chuàng)建的工具函數(shù)類庫(kù)。 緣起 最近公司內(nèi)部想搭建一個(gè)私有的 npm 倉(cāng)庫(kù),用于將平時(shí)用到次數(shù)相當(dāng)頻繁的工具或者組件獨(dú)立出來(lái),方便單獨(dú)管理,隨著項(xiàng)目的規(guī)模變大,數(shù)量變多,單純的復(fù)制粘粘無(wú)疑在優(yōu)雅以及實(shí)用性上都無(wú)法滿足我們的需求,所以進(jìn)一步模塊化是必然的。 但是一個(gè)組件庫(kù)的建立其實(shí)是一個(gè)非常麻煩的過(guò)程,基礎(chǔ) webpac...

    CompileYouth 評(píng)論0 收藏0
  • 使用karma+mocha+chai+sinon+@vue/test-utils為你的組件庫(kù)增加單元

    摘要:但是,項(xiàng)目中的一些公共封裝,比如公共的組件公用的功能模塊等是可以使用單元測(cè)試的。因此特為組件庫(kù)引入單元測(cè)試,目的在于能減少組件的,避免重復(fù)的發(fā)布不必要的包。 項(xiàng)目github地址:https://github.com/yuanalina/installAsRequired這里必須要提前說(shuō)明,前端項(xiàng)目的單元測(cè)試不是必須的,特別是業(yè)務(wù)型項(xiàng)目,增加單元測(cè)試反而會(huì)成為累贅,增加開發(fā)成本且無(wú)意義...

    happen 評(píng)論0 收藏0
  • webpack4.x升級(jí)摘要

    摘要:以為例,編寫來(lái)幫助我們完成重復(fù)的工作編譯壓縮我只要執(zhí)行一下就可以檢測(cè)到文件的變化,然后為你執(zhí)行一系列的自動(dòng)化操作,同樣的操作也發(fā)生在這些的預(yù)處理器上。的使用是針對(duì)第三方類庫(kù)使用各種模塊化寫法以及語(yǔ)法。 showImg(https://segmentfault.com/img/bVbtZYK); 一:前端工程化的發(fā)展 很久以前,互聯(lián)網(wǎng)行業(yè)有個(gè)職位叫做 軟件開發(fā)工程師 在那個(gè)時(shí)代,大家可能...

    levinit 評(píng)論0 收藏0
  • Angular 5.0 來(lái)了! 有這些大變化

    摘要:以下簡(jiǎn)單介紹的重大變化。狀態(tài)轉(zhuǎn)交及對(duì)的支持這樣更便于在服務(wù)端和客戶之間共享應(yīng)用狀態(tài)。狀態(tài)轉(zhuǎn)交的相關(guān)文檔幾周后會(huì)發(fā)布。我們刪除很多以前廢棄的如,也公布了一些新的廢棄項(xiàng)。以上指南會(huì)詳細(xì)介紹這些變更。已知問(wèn)題當(dāng)前已知與相關(guān)的問(wèn)題。 我們很高興地宣布Angular 5.0.0——五角形甜甜圈發(fā)布啦!這又是一個(gè)主版本,包含新功能并修復(fù)了很多bug。它再次體現(xiàn)了我們把Angular做得更小、更快、...

    張紅新 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<