最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用 JavaScript 構(gòu)建命令行應(yīng)用

 更新時間:2021年11月17日 09:46:13   作者:LCTT geekpi  
這篇文章主要介紹了利用 JavaScript 構(gòu)建命令行應(yīng)用,下面文章圍繞如何利用JavaScript 構(gòu)建命令行應(yīng)用的相關(guān)資料炸開詳細(xì)內(nèi)容,需要的朋友可以參考一下

前言:

JavaScript 是一種為 Web 開發(fā)的語言,但它的用處已經(jīng)遠(yuǎn)遠(yuǎn)超出了互聯(lián)網(wǎng)的范疇。由于 Node.js Electron 這樣的項(xiàng)目,JavaScript 既是一種通用的腳本語言,也是一種瀏覽器組件。有專門設(shè)計(jì)的 JavaScript 庫來構(gòu)建命令行界面。是的,你可以在你的終端中運(yùn)行 JavaScript。

現(xiàn)在,當(dāng)你在終端中輸入一個命令時,一般都有 選項(xiàng) ,也叫  開關(guān) 或  標(biāo)志 ,你可以用來修改命令的運(yùn)行方式。這是由  POSIX 規(guī)范 定義的一個有用的慣例,所以作為一個程序員,知道如何檢測和解析這些選項(xiàng)是很有幫助的。要從 JavaScript 獲得此功能,使用旨在簡化構(gòu)建命令行界面的庫很有用。我最喜歡的是  Commander.js 。它很簡單,很靈活,而且很直觀。

1、安裝 node

要使用 Commander.js 庫,你必須安裝 Node.js 。在 Linux 上,你可以用你的包管理器安裝 Node。例如,在 Fedora、CentOS、Mageia 和其他系統(tǒng)上:

$ sudo dnf install nodejs


Windows macOS 上,我們可以 從nodejs.org 網(wǎng)站下載安裝程序 。

2、安裝 Commander.js

要安裝 Commander.js,請使用 npm 命令:

$ npm install commander

3、 JavaScript 代碼中添加一個庫

JavaScript 中,你可以使用 require 關(guān)鍵字在你的代碼中包含(或者導(dǎo)入,如果你習(xí)慣于 Python)一個庫。創(chuàng)建一個名為  example.js 的文件,并在你喜歡的文本編輯器中打開它。在頂部添加這一行,以包括 Commander.js 庫:

const { program } = require('commander');


4、JavaScript 中的選項(xiàng)解析

要解析選項(xiàng),你必須做的第一件事是定義你的應(yīng)用可以接受的有效選項(xiàng)。Commander.js 庫可以讓你定義短選項(xiàng)和長選項(xiàng),同時還有一個有用的信息來澄清每個選項(xiàng)的目的。

program
  .description('A sample application to parse options')
  .option('-a, --alpha', 'Alpha')
  .option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');

第一個選項(xiàng),我稱之為 --alpha (簡寫  -a ),是一個布爾型開關(guān):它要么存在,要么不存在。它不需要任何參數(shù)。第二個選項(xiàng),我稱之為  --beta (簡寫  -b ),接受一個參數(shù),甚至在你沒有提供任何參數(shù)的情況下指定一個默認(rèn)值。

5、訪問命令行數(shù)據(jù)

當(dāng)你定義了有效的選項(xiàng),你就可以使用長的選項(xiàng)名稱來引用這些值:

program.parse();

const options = program.opts();
console.log('Options detected:');

if (options.alpha) console.log('alpha');
 
const beta = !options.beta ? 'no' : options.beta;
console.log('beta is: %s', beta);

6、運(yùn)行應(yīng)用

試著用 node 命令來運(yùn)行它,首先不使用選項(xiàng):

$ node ./example.js 
Options detected: 
beta is: Foo

在用戶沒有覆蓋的情況下, beta 的默認(rèn)值被使用。

再次運(yùn)行它,這次使用選項(xiàng):

$ node ./example.js --beta hello --alpha
Options detected: 
alpha
beta is: hello

這次,測試腳本成功檢測到了選項(xiàng) --alpha ,以及用戶提供的  --beta 選項(xiàng)的值。

7、選項(xiàng)解析

下面是完整的演示代碼供你參考:

const { program } = require('commander');

program
  .description('A sample application to parse options')
  .option('-a, --alpha', 'Alpha')
    .option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');

program.parse();

const options = program.opts();
console.log('Options detected:');

console.log(typeof options);

if (options.alpha) console.log(' * alpha');
const beta = !options.beta ? 'no' : options.beta;
console.log(' * beta is: %s', beta);

在該項(xiàng)目的 Git 倉庫 中還有更多例子。

對任何應(yīng)用來說,包括用戶的選項(xiàng)都是一個重要的功能,而 Commander.js 使它很容易做到。除了 Commander.js,還有其他庫,但我覺得這個庫使用起來很方便快捷。你最喜歡的 JavaScript 命令行構(gòu)建器是什么?

到此這篇關(guān)于利用 JavaScript 構(gòu)建命令行應(yīng)用的文章就介紹到這了,更多相關(guān) JavaScript 構(gòu)建命令行應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • lodash內(nèi)部方法getData和setData實(shí)例解析

    lodash內(nèi)部方法getData和setData實(shí)例解析

    本篇章我們將了解lodash里內(nèi)部關(guān)于Data的操作方法,重點(diǎn)關(guān)注getData、setData兩個內(nèi)部方法,同時由實(shí)現(xiàn)上引申其他內(nèi)部封裝的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解JavaScript實(shí)現(xiàn)簡單的詞法分析器示例

    詳解JavaScript實(shí)現(xiàn)簡單的詞法分析器示例

    這篇文章主要為大家介紹了詳解JavaScript實(shí)現(xiàn)簡單的詞法分析器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Fabric.js 實(shí)現(xiàn)變換視窗示例詳解

    Fabric.js 實(shí)現(xiàn)變換視窗示例詳解

    這篇文章主要為大家介紹了Fabric.js 實(shí)現(xiàn)變換視窗示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 競態(tài)條件Race condition及如何避免的三種方案詳解

    競態(tài)條件Race condition及如何避免的三種方案詳解

    這篇文章主要為大家介紹了競態(tài)條件Race condition及如何避免的三種方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 如何編寫高質(zhì)量 JavaScript 代碼

    如何編寫高質(zhì)量 JavaScript 代碼

    如果要編寫出高質(zhì)量的 JavaScript 代碼,可以從以下三個方面去考慮。分別是:易閱讀的代碼、高性能的代碼、健壯性的代碼。下面我將分別對這三個方面進(jìn)行闡述。需要的朋友可以參考一下
    2021-09-09
  • 微信支付 JS API支付接口詳解

    微信支付 JS API支付接口詳解

    本文是對微信支付 JS API支付接口介紹,并附代碼實(shí)例,在開發(fā)過程中具有參考價值,希望能幫助到需要的朋友
    2016-07-07
  • JavaScript組合繼承詳解

    JavaScript組合繼承詳解

    這篇文章主要介紹了JavaScript組合繼承,下面文章將圍繞了JavaScript組合繼承的相關(guān)資料展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對你有所幫助
    2021-11-11
  • JS算法題解數(shù)組刪除重復(fù)項(xiàng)方法示例

    JS算法題解數(shù)組刪除重復(fù)項(xiàng)方法示例

    這篇文章主要為大家介紹了JS算法題解數(shù)組刪除重復(fù)項(xiàng)方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 使用PreloadJS加載圖片資源的基礎(chǔ)方法詳解

    使用PreloadJS加載圖片資源的基礎(chǔ)方法詳解

    PreloadJS是一個用來管理和協(xié)調(diào)相關(guān)資源加載的類庫,它可以方便的幫助你預(yù)先加載相關(guān)資源簡單點(diǎn)兒說就是一個加載插件,它可以做成頁面異步加載且頂部會有進(jìn)度條動畫
    2020-02-02
  • 開發(fā)效率翻倍的Web?API使用技巧

    開發(fā)效率翻倍的Web?API使用技巧

    這篇文章主要為大家介紹了開發(fā)效率翻倍的Web?API使用技巧詳解,主要選取了一些有趣且有用的?Web?API?進(jìn)行介紹,并且?API?可以在線運(yùn)行預(yù)覽
    2023-05-05

最新評論

庆城县| 恩施市| 麦盖提县| 信阳市| 云安县| 敦化市| 华阴市| 博白县| 惠安县| 城市| 樟树市| 海晏县| 大宁县| 贵州省| 镇宁| 长顺县| 瑞安市| 汝城县| 元谋县| 和林格尔县| 马山县| 全州县| 咸阳市| 尼玛县| 新巴尔虎右旗| 迁西县| 佳木斯市| 溧水县| 婺源县| 衡山县| 旌德县| 长垣县| 汤阴县| 托克托县| 天津市| 侯马市| 青川县| 古丈县| 四会市| 北宁市| 达州市|