Späť na blog

Používanie modulov Node.js s npm a package.json: Tutoriál

Používanie modulov Node.js s npm a package.json: Tutoriál

Node.js je open-source multiplatformové runtime prostredie pre JavaScript. Za posledných niekoľko rokov sa stalo populárnou voľbou pre vývoj webového back-endu vďaka svojmu rýchlemu výkonu vstupu/výstupu (I/O) a bezkonkurenčnej syntaxi JavaScriptu. Jeho adaptívna povaha navyše umožňuje rýchle prispôsobenie, vďaka čomu táto serverová technológia vyniká nad svojimi konkurentmi.

Node.js Package Manager — prehľad

Node.js Package Manager alebo npm je predvolený správca balíkov pre JavaScript. Npm sa často používa na inštaláciu projektových skriptov a správu externých modulov v Node.js projekte. Okrem toho sleduje moduly nainštalované v projekte pomocou súboru package.json ktorý sa nachádza v adresári projektu. Npm ukladá a zaznamenáva nasledujúce informácie:

  • Moduly potrebné pre projekt a ich nainštalované verzie, ak nejaké sú.
  • Metadáta s popisom projektu, ktoré okrem iného zahŕňajú podrobnosti o autorovi a licencii.
  • Spustiteľné skripty na automatizáciu úloh súvisiacich s projektom alebo zameraných na cieľ.

V tomto návode vás prevedieme krokmi používania modulov Node.js s npm a package.json.

Začnime!

Požiadavky

Na sledovanie tohto návodu budete potrebovať nasledujúce:

Krok 1: Vytvorenie súboru package.json

Začnime náš návod na príklade fiktívneho projektu využívajúceho Node.js modul locator . Cieľom projektu je získať IP adresu používateľa a zobraziť výstup ako krajinu pôvodu používateľa. Keďže sa zameriavame na pochopenie používania modulov Node.js s npm, nie je potrebné písať moduly ručne. Namiesto toho budeme v našom projekte používať predinštalované a prispôsobiteľné balíky.

JSON alebo JavaScript Object Notation je štandardný formát používaný na zdieľanie a prenos dát. Na začiatku vytvoríme súbor JSON, ktorý bude ukladať a spravovať softvérové závislosti. Ručné vytváranie súboru package.json je však namáhavé a časovo náročné. Pre zjednodušenie použijeme príkaz init na vytvorenie súboru package.json namiesto toho, aby sme vynakladali úsilie na písanie ďalších blokov kódu pre vytvorenie nášho JSON od nuly.

  • init príkaz

Najprv vytvorme nový priečinok pomocou príkazu mkdir a pomenujme ho locator:

Potom použite príkaz cd na presun do novovytvoreného priečinka:

Potom zadajte npm na inicializáciu interaktívnej výzvy:

After that, you will see the output:

Node.js Modules npm init 1

1. name

Budete presmerovaní na name vášho nového projektu; aktuálny priečinok. V zátvorkách uvidíte predvolené hodnoty (). Aby bol tento návod jednoduchý a ľahko pochopiteľný, použijeme predvolené možnosti. Stlačte ENTER na potvrdenie a pokračovanie.

2. version

Ďalšou hodnotou je názov version čo je kľúčová požiadavka, ak zdieľate svoj projekt v repozitári balíkov npm.

Note: Balíky Node.js sa riadia príručkou pre Semantic Versioning (semver).

First number: The MAJOR (hlavná), ktorá sa mení iba pri zmene API.

Second Number: The MINOR (vedľajšia), ktorá sa mení pri pridaní nových funkcií.

Last number: The PATCH (opravná), ktorá sa mení pri vyriešení chyby.

3. description

Hodnota description je informatívny reťazec, ktorý popisuje fungovanie modulu Node.js. V našom deme projekt locator získa IP adresu používateľa a vráti krajinu pôvodu.

Note: Väčšina modulov má súbor index.js ako vstupný bod. Toto je tiež vlastnosť main v súbore package.json, čo je vstupný bod pre moduly npm. Ak sa však package.json nenájde, Node.js načíta index.js automaticky.

4. test príkaz

Je to spustiteľný skript alebo príkaz na spustenie testov vášho projektu. Keďže testovanie presahuje rámec nášho návodu, preskočme ho a stlačme ENTER.

5. init príkaz

Príkaz init si vyžiada GitHub repozitár projektu. Túto časť opäť preskočme a pokračujme.

6. keywords

Kľúčové slová sú pole reťazcov používaných na vyhľadávanie repozitára. Odporúča sa udržiavať kľúčové slová presné a relevantné pre váš projekt, aby boli bezproblémovo sledovateľné.

Uveďte tieto kľúčové slová ako reťazce a oddeľte ich čiarkami. V našom projekte zadajte ip, country, latitude, a longitude na výzve a uvidíte ich zahrnuté ako kľúčové slová v package.json.

7. author

Berte pole author ako spätnú väzbu a spôsob interakcie s vašimi používateľmi. Napríklad, ak používatelia zistia chybu vo vašom module, môžu použiť toto pole na to, aby vás upozornili a dosiahli nápravu chyby.

  • Formát: "Meno \<E-mail\> (Webstránka)".

    • Ukážka: "Paul\<paul@your_domain\> (https://your_domain)"

Pridanie e-mailu a údajov o webovej stránke je voliteľné. Môžete však zadať platného autora a pridať svoje kontaktné údaje ako author. Potvrďte údaje a stlačte ENTER.

8. license

Pole license ilustruje právne podmienky, ktoré musia používatelia poznať pri používaní vášho modulu. Keďže Node.js moduly sú open source, npm ho automaticky nakonfiguruje na ISC-license.

Prejdite na stránku s licenciami open source a vyberte si Open Source Initiative, ktorá najlepšie vyhovuje vašim potrebám. Na výzve zadajte UNLICENSED, ak pre svoj repozitár nepotrebujete licenciu. V našom návode použijeme predvolenú licenciu ISC. Stlačte ENTER na dokončenie tohto procesu.

Príkaz init vytvorí súbor package.json a zobrazí výsledok:

Node.js Modules npm init

Potom stlačte ENTER pre pokračovanie a vytvorenie súboru package.json . Náš súbor JSON si bude uchovávať záznam o všetkých moduloch a balíkoch, ktoré v našom projekte nainštalujeme.

V ďalšom kroku budeme inštalovať závislosti a moduly Node.js.

Krok 2: Inštalácia závislostí a modulov

Vytváranie prispôsobených externých knižníc je časovo náročné a vyžaduje si značné úsilie. Najefektívnejším spôsobom je inštalácia preddefinovaných závislostí a externých knižníc. V našom návode použijeme knižnicu HTTP, aby sme nášmu demo modulu lokátora umožnili odoslať požiadavku na externé API na zber geografických údajov.

V tejto príručke použijeme knižnicu axios na odosielanie požiadaviek HTTP. Najprv poďme nainštalovať axios:

Začnite inštaláciou balíka npm a následne ich uveďte oddelené medzerami. Tiež zahrňte príznak --save , aby ste sa uistili, že sa projekt uloží ako závislosť projektu.

Uvidíte výstup:

Node.js Modules install axios

Otvorte súbor package.json pomocou nano alebo akéhokoľvek textového editora podľa vášho výberu:

Všimnite si novopridanú vlastnosť zvýraznenú v dolnej časti bloku kódu:

Node.js Modules package json

  • Stiahnutie vývojových závislostí

Vývojové závislosti sú balíky používané pri vývoji projektu a nemajú žiadne využitie v produkcii alebo údržbe projektu. Hoci tieto závislosti môžu v produkčných oblastiach znieť neúčinne, zohrávajú významnú úlohu pri písaní a prepisovaní kódov.

Podobne ako nástroje na kontrolu kódu (lintery), aj vývojové závislosti zohrávajú dôležitú úlohu pri vývoji softvéru. Vývojári väčšinou používajú code linters na udržanie jednotnosti a konzistentnosti štýlu počas vývoja projektu, čo je inak v produkcii zbytočné.

Nainštalujme linter ako vývojovú závislosť pre váš projekt. Tiež použite príznak --save-dev na uloženie eslint ako závislosti potrebnej pre vývoj:

Pridali sme @6.0.0 do našej závislosti, takže keď aktualizujeme moduly, označia sa verziou. Symbol @ upozorní npm , aby vyhľadal konkrétnu značku, ktorú chcete nainštalovať. Teraz znova otvorte súbor package.json :

Uvidíte výstup:

dev package json

  • Automaticky generované súbory: node_modules a package-lock.json

Na začiatku, pri inštalácii balíka do projektu Node.js, sa súbory package.json a package-lock.json vytvoria automaticky. Overte tieto súbory v pracovnom adresári:

Keďže väčšina nainštalovaných závislostí je uložená v node_modules priečinok, odporúča sa neodosielať tento priečinok do vášho repozitára so správou verzií. S nárastom počtu nainštalovaných závislostí sa veľkosť node_modules tiež zvyšuje.

Naopak, súbor package-lock.json uchováva záznam o presných nainštalovaných verziách, takže nie je potrebné explicitne zahŕňať node_modules . Na rozdiel od priečinka node_modules môžete tento súbor odoslať do svojho repozitára so správou verzií, pretože poskytuje podrobnú reprezentáciu všetkých vašich závislostí spolu s ich verziami.

  • Inštalácia pomocou package.json

Súbory package.json a package-lock.json vám umožňujú nastaviť rovnaké závislosti projektu pred spustením vývoja projektu. Prejdite do svojho adresárového stromu a vytvorte nový priečinok na rovnakej úrovni adresára ako locator. Nový priečinok pomenujte ako cloned_locator:

Ďalej sa presuňte do cloned_locator:

Importujte súbory package.json a package-lock.json z locator do cloned_locator:

Znak . označuje aktuálny priečinok. Nainštalujte požadované moduly pomocou nasledujúceho príkazu:

Na začiatku npm skontroluje súbor package-lock.json na inštaláciu modulov. Ak súbor lock nie je k dispozícii, prečíta súbor package.json na určenie inštalácií.

Vo všeobecnosti je inštalácia zo súboru package-lock.json jednoduchá, pretože súbor lock obsahuje presnú verziu modulov a ich závislostí. To znamená, že keď inštalujete pomocou package.json, npm ušetrí dodatočný čas potrebný na zistenie kompatibilnej a stabilnej verzie.

Ignorujte vývojové závislosti pridaním značky --production :

Potom sa vráťte do locatora:

  • Globálne inštalácie

Doteraz sme inštalovali moduly npm lokálne. Máte však aj alternatívu inštalovať balíky globálne a používať ich prostredníctvom príkazu shellu alebo CLI. Môžete napríklad prechádzať aktuálnym projektom locator pomocou knižnice Hexo a spravovať svoj statický web. Použite nasledujúci príkaz so značkou -g na globálnu inštaláciu CLI Hexo :

Poznámka: Ak sa pri globálnej inštalácii balíkov vyskytne chyba, vyskúšajte tento príkaz sudo npm i hexo-cli -g  s prihlasovacími údajmi roota.

Na overenie, či bol balík úspešne nainštalovaný, použite nasledujúci príkaz:

Uvidíte výstup:

hexo version

Krok 3: Správa a aktualizácia modulov

Správca balíkov dokáže viac než len inštalovať moduly Node.js. K dispozícii je množstvo možností prispôsobenia, kde môžete podľa potreby vypisovať, aktualizovať, odinštalovať alebo dokonca pridať bezpečnostnú vrstvu.

V tejto časti sa dozvieme, ako:

  1. Zobraziť zoznam modulov

  2. Aktualizovať moduly

  3. Odinštalovať moduly

  4. Auditovať moduly

Poďme si každý z nich podrobne prebrať:

  1. Zobraziť zoznam modulov

Výpis modulov, ako už názov napovedá, vám poskytne podrobnosti o všetkých moduloch nainštalovaných v projekte. Namiesto čítania súboru package.json môžete použiť príkaz ls alebo list na podrobné zistenie modulov vášho projektu:

Uvidíte výstup:

npm list op

V predvolenom nastavení príkaz ls vypíše celý strom závislostí, ktorý zahŕňa závislosti projektu a moduly, od ktorých závisí. Môžete však získať aj celkový prehľad a explicitne zacieliť na konkrétny modul. Na kontrolu nainštalovaných modulov bez ich závislostí použite nasledujúci príkaz:

Uvidíte výstup:

npm list depth zero

  1. Aktualizovať moduly

Vždy sa odporúča udržiavať váš modul npm aktualizovaný, aby ste nečelili žiadnym pádom softvéru alebo konfliktom. Na kontrolu, či je potrebná aktualizácia, použite nasledujúci príkaz:

Uvidíte výstup:

Outdated

Poďme si podrobne vysvetliť jednotlivé výrazy:

  • Package: Uvádza aktuálny Package nainštalovaný vo vašom projekte.
  • Current: Zobrazuje Current verziu balíka.
  • Wanted: Zobrazuje npm verziu, ktorá najlepšie vyhovuje požiadavke na verziu v package.json.
  • Najnovšia: Zobrazuje najnovšiu npm vydanú verziu, ktorú musíte v prípade potreby aktualizovať.
  • Umiestnenie: Balík Location v strome závislostí.

Ako bolo navrhnuté, môžeme aktualizovať náš npm na stabilnú verziu. Na aktualizáciu aktuálneho balíka použite nasledujúci príkaz:

Uvidíte výstup:

update eslint

Namiesto ich aktualizácie po jednom môžete tiež aktualizovať všetky moduly naraz pomocou príkazu up :

  1. Odinštalovanie modulov

Mnohokrát závislosť nemusí vykazovať očakávaný výstup a musíte vytvoriť prispôsobenú závislosť. V takýchto scenároch máte možnosť odinštalovať závislosti zo svojich súborov package.json a package-lock.json . Predpokladajme, že máte axios ako závislosť a neposkytuje uspokojivý výsledok. Tento repozitár nepochybne zo svojho projektu odstránite. Na odstránenie uninstall alebo un použite príkaz axios:

Uvidíte výstup:

Uninstall axios

Hoci príkaz uninstall odstránil závislosť, nedostali sme žiadne upozornenie o jej odstránení. Poďme vypísať závislosti, aby sme videli, koľko závislostí teraz máme:

Uvidíte výstup, v ktorom v zozname nie je žiadna závislosť axios:

npm list

  1. Audit modulov

Ak sú závislosti nainštalované vo vašom projekte náchylné na akúkoľvek potenciálnu bezpečnostnú hrozbu, môžete ich detegovať. Najprv musíte nainštalovať zastaranú verziu modulu request, aby ste videli, ako funguje modul auditu:

Uvidíte výstup, ktorý vás vyzve na opravu hrozieb alebo zraniteľností:

add request

Ak chcete zobraziť podrobnosti o zraniteľnostiach a hrozbách, použite príkaz audit :

Uvidíte podrobnú bezpečnostnú správu:

Node.js Modules Audit security report

Na vyriešenie týchto zraniteľností použite príkaz fix :

Uvidíte výstup:

audit update

Možno ste si všimli, že dve z deviatich zraniteľností boli opravené. Zostávajúcich sedem zraniteľností však vo vašich závislostiach pretrváva, pretože audit fix nerieši všetky problémy. Na vyriešenie tohto problému možno budete musieť aktualizovať svoju závislosť na vyššiu verziu pomocou iného API. Pri aktualizácii buďte opatrní, pretože existuje pravdepodobnosť, že môžete porušiť kód vyššie v strome závislostí. Na potvrdenie, že zraniteľnosti zmizli, použite nasledujúci príkaz:

Pri používaní iného API na riešenie hrozieb zraniteľnosti buďte opatrní, pretože ak si ním nie ste istí, môže to viesť k narušeniu funkčnosti kódu.

Záver

Na záver sme si ukázali, ako používať moduly Node.js s npm a package.json. Okrem toho sme prešli metódy vypisovania, aktualizácie, správy, auditu a odinštalovania závislostí našich balíkov. Ako ďalšiu výzvu vás povzbudzujeme, aby ste využili koncepty diskutované v tejto príručke a sami experimentovali s inštaláciou a testovaním balíkov. Môžete sa tiež pokúsiť vytvárať aplikácie Node.js a konfigurovať závislosti, aby ste si rozšírili svoje vedomosti.

Okrem toho existuje mnoho ďalších vzdelávacích materiálov o témach Node.js a JavaScriptu, ktoré nájdete na našom blogu:

Príjemnú prácu s počítačom!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.