Hogyan készítsünk CLI-alkalmazást a Node.js-ben

Hogyan készítsünk CLI-alkalmazást a Node.js-ben
Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A CLI (Command Line Interface) alkalmazások leegyszerűsített szövegalapú alkalmazások, amelyek a terminálon futnak meghatározott feladatok elvégzésére. A CLI alkalmazások szinte minden fejlesztő és informatikai szakember munkafolyamatában döntő szerepet játszanak.





Ezek többnyire olyan segédeszközök, amelyek kölcsönhatásba lépnek az operációs rendszerrel vagy a helyileg telepített vagy az interneten keresztül elérhető alkalmazásokkal, hogy a felhasználó által megadott adatoknak és utasításoknak megfelelően végrehajtsanak egy feladatot.





A CLI alkalmazások megértése

A parancssori felület lehetővé teszi a programokkal való interakciót szövegsorok beírásával. Sok CLI program eltérően fut az indításhoz használt parancstól függően.





Például, az ls program fájlinformációkat jelenít meg és a könyvtárak tartalma. Így futtathatod:

 ls -l /home

Ez a parancs a következőket tartalmazza:



  • A program neve: ls .
  • Egy opció (vagy zászló). Ebben az esetben, -l egy olyan opció, amely a 'hosszú' rövidítése, és részletesebb információkat szolgáltat.
  • Egy veszekedés, /itthon . Itt az argumentum megadja a könyvtár elérési útját az információk megjelenítéséhez.

Bár minden program definiálhat saját parancssori felületet, bizonyos elemek általánosak és széles körben használatosak. Kövesse ezeket a szabványokat, hogy valaki, aki ismeri a parancssori felületet, könnyen tudja használni a programjait.

Mi az a Commander.js?

A Commander.js az egy csomag, amely lehetővé teszi CLI-alkalmazások létrehozását a Node.js-ben . Funkciók gazdag könyvtárával rendelkezik, amelyek segítségével szabványos CLI-alkalmazásokat készíthet, és elvégzi a nehéz munka nagy részét. Csak parancsokat, beállításokat és funkciókat kell megadnia a CLI-alkalmazáshoz.





Más csomagokkal, például a stílusozáshoz a Chalk.js-szel kombinálva gyorsan létrehozhat egy teljesen működőképes CLI-alkalmazást a Node.js-ben.

CLI-alkalmazás létrehozása Node.js-ben a Commander.js használatával

Vegyünk egy példa CLI alkalmazást, városi-cli, amely a szavak jelentését és a közösségimédia-rövidítéseket innen nézi ki a Városi szótár . Megtanulja, hogyan hozhatja létre a CLI-t, és hogyan teheti közzé npm csomag-nyilvántartást, hogy mások telepíthessék.





a fájlkezelő sötét módja nem működik

Hozzon létre egy új mappát, és inicializáljon egy új Node.js projektet a következő parancsokkal:

 mkdir urbanary-cli 
cd urbanary-cli
npm init -y

Ez a CLI fogja használni Axios HTTP kérések küldésére az Urban Dictionary API-hoz. Te tudod használni Rapid API a végpontok ellenőrzéséhez és a hitelesítő adatok megtekintéséhez.

  Képernyőkép az Urban Dictionary API-ról's page on Rapid API show user API credentials

Egy egyszerű parancssori felület alparanccsal és súgóval

A CLI felépítésének megkezdéséhez telepítse a Commander és az Axios alkalmazást a következő paranccsal:

 npm install commander axios 

Hozzon létre egy új mappát, kuka , a projektkönyvtárban, és egy új üres fájlt, index.js :

 mkdir bin 
cd bin
touch index.js

A kuka (a 'bináris' rövidítése) mappa fontos, mert ez tartalmazza a belépési pont fájlt, amelyet a Node hív meg a CLI futtatásakor. A index.js fájl ez a belépési pont fájl. Most szerkessze az index.js fájlt, és kezdje el létrehozni a parancssori felületet a Commander.js API-val.

Először importálja a program objektum a parancsnoktól:

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

Használja a program objektumot a program felületének meghatározásához, beleértve az alparancsokat, opciókat és argumentumokat. Az objektum mindegyikhez rendelkezik megfelelő metódusokkal; például egy alparancs definiálásához használja a parancs módszer.

Határozza meg a megtalálja alparancs a CLI számára, hogy kikeresse a szavakat az Urban Dictionary-ból, és az alábbi kód segítségével hozzáírja a leírást:

 // index.js 
program
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')

Ez regisztrálja a megtalálja parancsot, amely egy szót és leírást vár utána. A szögletes zárójelek használata azt jelenti, hogy a szó kötelező argumentum; használj helyette szögletes zárójelet ( [] ), hogy opcionális legyen.

Adjon hozzá egy leírást, mert a Commander.js azt használja a súgószöveg létrehozásához. Amikor az alkalmazást a Segítség parancsot, akkor kap egy szabványos használati útmutatót.

Ennek teszteléséhez adja hozzá a következőket:

 program.parse()

Ezután futtassa a programot, és adja át a Segítség parancsot az alábbi kimenet lekéréséhez:

  Képernyőkép, amely a help parancs futtatásának kimenetét mutatja

Így minden szabványos CLI-alkalmazás megjeleníti a segítségét a felhasználóknak, és a Commanderrel nem kell aggódnia, hogy saját maga hozza létre. A -h és --Segítség Az opciók hasznosak a parancs használati útmutatójának ellenőrzéséhez.

Lehetőségek meghatározása és a végleges program elkészítése

A lánc láncolásával is megadhat egy opciót választási lehetőség módszert a parancsdefinícióhoz.

A következőképpen definiálhat egy lehetőséget, hogy példákat is belefoglalhasson a szavak definíciójába:

 program.option('-e, --example', "Display examples") 

És a következőképpen definiálhat egy opciót, amely megadja a visszaadandó definíciók számát:

 program.option( 
    '-c, --count [amount]',
    'amount of definitions to display (max is 10)'
)

A választási lehetőség metódus két karakterlánc-paramétert fogad el, az egyiket az opció nevéhez (rövid és hosszú formák), a másikat pedig a leírásához. Az extra [összeg] érv a számol Az opció a megjelenítendő definíciók számának értéke.

Most az utolsó hozzáadandó módszer a akció módszer. Meg fogod valósítani a megtalálja parancs funkcióit ezen a módszeren belül. Adja hozzá a lánchoz, hogy a kód most így nézzen ki:

 program 
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')
    .option('-e, --example', "Display examples")
    .option(
        '-c, --count [amount]',
        'amount of definitions to display (max is 10)'
    )
    .action(async (word, options) => {});

Ezzel a beállítással három definíciót kaphat a parancsból lol példákkal így fog kinézni:

 urbanary-cli find lol -e -c 3 

Vagy használja az egyes opciók hosszú formáját:

 urbanary-cli find lol --example --count 3