Paano Gumawa ng CLI Application sa Node.js

Paano Gumawa ng CLI Application sa Node.js
Ang mga mambabasang tulad mo ay tumutulong sa pagsuporta sa MUO. Kapag bumili ka gamit ang mga link sa aming site, maaari kaming makakuha ng isang affiliate na komisyon. Magbasa pa.

Ang mga CLI (Command Line Interface) na application ay mga simpleng text-based na app na tumatakbo sa terminal upang makumpleto ang mga partikular na gawain. Ang mga aplikasyon ng CLI ay gumaganap ng isang mahalagang papel sa daloy ng trabaho ng halos bawat developer at propesyonal sa IT.





Ang mga ito ay kadalasang mga tool sa utility na nakikipag-ugnayan sa operating system o mga application na maaaring lokal na naka-install o magagamit sa internet upang magsagawa ng isang gawain ayon sa input at mga direktiba ng user.





Pag-unawa sa Mga Aplikasyon ng CLI

Hinahayaan ka ng interface ng command-line na makipag-ugnayan sa isang programa sa pamamagitan ng pag-type ng mga linya ng text. Maraming CLI program ang tumatakbo nang iba depende sa command na iyong ginagamit upang simulan ang mga ito.





Halimbawa, ang ls program ay nagpapakita ng impormasyon ng file at ang mga nilalaman ng mga direktoryo. Maaari mong patakbuhin ito tulad nito:

 ls -l /home

Kasama sa utos na ito ang:



  • Ang pangalan ng programa: ls .
  • Isang opsyon (o bandila). Sa kasong ito, -l ay isang opsyon na maikli para sa 'mahaba' at gumagawa ng mas detalyadong impormasyon.
  • Pagtatalo, /bahay . Dito, tinutukoy ng argumento ang isang landas patungo sa direktoryo upang magpakita ng impormasyon.

Bagama't maaaring tukuyin ng bawat programa ang sarili nitong command-line interface, ang ilang mga elemento ay karaniwan at malawak na ginagamit. Dapat mong sundin ang mga pamantayang ito upang ang isang taong pamilyar sa interface ng command-line ay madaling magamit ang iyong mga programa.

Ano ang Commander.js?

Si Commander.js ay isang package na hinahayaan kang bumuo ng mga CLI app sa Node.js . Mayroon itong maraming library ng mga feature na nagbibigay-daan sa iyong bumuo ng isang karaniwang CLI application, na isinasagawa ang karamihan sa mabibigat na gawain. Kailangan mo lang tukuyin ang mga command, opsyon, at functionality para sa iyong CLI app.





Kapag pinagsama ito sa iba pang mga package gaya ng Chalk.js para sa pag-istilo, mabilis kang makakagawa ng fully functional na CLI app sa Node.js.

Pagbuo ng CLI Application sa Node.js Gamit ang Commander.js

Isaalang-alang ang isang halimbawa ng CLI app, urbanary-cli, na naghahanap ng kahulugan ng mga salita at mga pagdadaglat sa social media mula sa ang Urban Dictionary . Matututuhan mo kung paano gawin ang CLI at i-publish ito sa npm package registry para ma-install ito ng iba.





Gumawa ng bagong folder at magpasimula ng bagong proyekto ng Node.js gamit ang mga sumusunod na command:

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

Gagamitin ng CLI na ito Axios upang magpadala ng mga kahilingan sa HTTP sa Urban Dictionary API. Pwede mong gamitin Mabilis na API upang suriin ang mga endpoint at tingnan ang mga kredensyal.

  Screenshot ng Urban Dictionary API's page on Rapid API show user API credentials

Isang Simpleng CLI na May Subcommand at Tulong

Upang simulan ang pagbuo ng iyong CLI, i-install ang Commander at Axios gamit ang sumusunod na command:

 npm install commander axios 

Lumikha ng isang bagong folder, bin , sa iyong direktoryo ng proyekto at isang bagong walang laman na file, index.js :

ang pagpipiliang dual boot ay hindi ipinapakita sa windows 10
 mkdir bin 
cd bin
touch index.js

Ang bin (maikli para sa 'binary') na folder ay mahalaga dahil hawak nito ang entry point file na tinatawag ng Node kapag pinatakbo mo ang iyong CLI. Ang index.js file ang entry point file na ito. Ngayon, i-edit ang index.js file at simulan ang pagbuo ng iyong CLI gamit ang Commander.js API.

Una, i-import ang programa bagay mula kay Commander:

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

Gagamitin mo ang programa object upang tukuyin ang interface ng iyong program, kabilang ang mga sub-command, opsyon, at argumento. Ang bagay ay may kaukulang pamamaraan para sa bawat isa sa mga ito; halimbawa, para tukuyin ang isang sub-command, gamitin ang utos paraan.

Tukuyin ang a hanapin subcommand para sa CLI na maghanap ng mga salita mula sa Urban Dictionary at magdagdag ng paglalarawan para dito gamit ang code sa ibaba:

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

Ito ay nagrerehistro ng a hanapin utos, na inaasahan ang isang salita pagkatapos nito, at isang paglalarawan para dito. Ang paggamit ng mga angle bracket ay nagpapahiwatig na ang salita ay isang kinakailangang argumento; gumamit na lang ng mga square bracket ( [] ) upang gawin itong opsyonal.

Dapat kang magdagdag ng paglalarawan dahil ginagamit ito ng Commander.js upang bumuo ng text ng tulong. Kapag pinatakbo mo ang application gamit ang tulong command, makakakuha ka ng karaniwang gabay sa paggamit.

Upang subukan ito, idagdag ang sumusunod:

 program.parse()

Pagkatapos ay patakbuhin ang programa at ipasa ito sa tulong command upang makuha ang output sa ibaba:

  Screenshot na nagpapakita ng output ng pagpapatakbo ng help command

Ito ay kung paano ipapakita ng anumang karaniwang CLI application ang tulong nito sa mga user at, kasama si Commander, hindi mo kailangang mag-alala tungkol sa paggawa nito mismo. Ang -h at --tulong Ang mga pagpipilian ay kapaki-pakinabang para sa pagsuri sa gabay sa paggamit para sa isang utos.

Pagtukoy sa mga Opsyon at Paghahanda ng Panghuling Programa

Tinukoy mo rin ang isang opsyon sa pamamagitan ng pag-chain sa opsyon paraan sa kahulugan ng utos.

Narito kung paano tumukoy ng opsyon na magsama ng mga halimbawa sa mga kahulugan ng mga salita:

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

At narito kung paano tukuyin ang isang opsyon na tumutukoy sa bilang ng mga kahulugan na ibabalik:

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

Ang opsyon tumatanggap ang method ng dalawang string parameter, isa para sa pangalan ng opsyon (parehong maikli at mahabang form), at ang isa para sa paglalarawan nito. Ang dagdag [halaga] argumento sa bilangin ang opsyon ay ang halaga para sa bilang ng mga kahulugang ipapakita.

Ngayon, ang huling paraan upang idagdag ay ang aksyon paraan. Ipapatupad mo ang hanapin functionality ng command sa loob ng paraang ito. Idagdag ito sa chain upang ang iyong code ay magmukhang ganito:

 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) => {});

Sa setup na ito, narito kung ano ang isang utos upang makakuha ng tatlong kahulugan lol na may mga halimbawa ay magiging ganito:

 urbanary-cli find lol -e -c 3 

O, gamit ang mahabang anyo ng bawat opsyon:

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