Vissza a bloghoz

Node.js modulok használata npm és package.json segítségével: Útmutató

Node.js modulok használata npm és package.json segítségével: Útmutató

Node.js egy nyílt forráskódú, platformfüggetlen JavaScript futtatókörnyezet. Az elmúlt néhány évben népszerű választássá vált a back-end webfejlesztésben a gyors bemeneti/kimeneti (I/O) teljesítményének és verhetetlen JavaScript szintaxisának köszönhetően. Emellett alkalmazkodó természete gyors testreszabást tesz lehetővé, amivel ez a szervertechnológia kiemelkedik versenytársai közül.

Node.js csomagkezelő — Áttekintés

A Node.js Package Manager, vagyis az npm a JavaScript alapértelmezett csomagkezelője. Az npm gyakran használatos projektszkriptek telepítésére és külső modulok futtatására egy Node.js projektben. Emellett nyomon követi a projektben telepített modulokat a package.json fájl segítségével, amely a projekt könyvtárában található. Az npm a következő információkat tárolja és rögzíti:

  • A projekthez szükséges modulok és azok telepített verziói, ha vannak.
  • Egy projekt metaadat-leírása, amely többek között tartalmazza a szerző és a licenc adatait.
  • Futtatható szkriptek a projekttel kapcsolatos vagy célorientált feladatok automatizálására.

Ebben az útmutatóban végigvezetjük a Node.js modulok npm-mel és package.json fájllal történő használatának lépésein..

Kezdjük el!

Előfeltételek

Az útmutató követéséhez a következőkre lesz szüksége:

1. lépés: Hozzon létre egy package.json fájlt

Kezdjük az útmutatót egy minta projekttel, amely a Node.js locator modult használja. A projekt célja a felhasználó IP-címének lekérdezése és a származási ország megjelenítése. Mivel most a Node.js modulok npm segítségével történő használatának megértésére összpontosítunk, nem szükséges manuálisan megírni a modulokat. Ehelyett az előre telepített és testreszabható csomagokat fogjuk használni a projektünkben.

A JSON vagy JavaScript Object Notation egy szabványos formátum az adatok megosztására és továbbítására. Kezdetben létrehozunk egy JSON fájlt, amely a szoftverfüggőségeket fogja tárolni és kezelni. Azonban a package.json manuális létrehozása fárasztó és időigényes. Az egyszerűség kedvéért az init parancsot fogjuk használni a package.json fájl létrehozásához, ahelyett, hogy plusz kódblokkokat írnánk a JSON teljesen nulláról való megírásához.

  • init parancs

Először hozzunk létre egy új mappát a mkdir paranccsal, és nevezzük el locator:

Ezután használja a cd parancsot az újonnan létrehozott mappába való belépéshez:

Ezután írja be az npm parancsot az interaktív prompt elindításához:

Ezt követően a következő kimenetet fogja látni:

Node.js Modules npm init 1

1. name

A rendszer átirányítja a name mezőhöz az új projektjében; ez a jelenlegi mappa. A zárójelben az alapértelmezett értékeket fogja látni (). Hogy ez az útmutató egyszerű és könnyen érthető maradjon, az alapértelmezett beállításokat választjuk. Nyomja meg az ENTER gombot az elfogadáshoz és a folytatáshoz.

2. version

A következő érték a version név, amely kulcsfontosságú követelmény, ha megosztja projektjét az npm csomagtárban.

Megjegyzés: A Node.js csomagok a Szemantikus verziókezelés (semver) útmutatót követik.

Első szám: A FŐ (MAJOR) verzió, és csak akkor változik, ha az API változik.

Második szám: A AL (MINOR) verzió, amely új funkciók hozzáadásakor változik.

Utolsó szám: A JAVÍTÓ (PATCH) verzió, amely egy hiba vagy bug javításakor változik.

3. description

A description egy informatív karakterlánc, amely leírja a Node.js modul működését. A bemutatónkban a locator projekt lekéri a felhasználó IP-címét, és visszaadja a származási országot.

Megjegyzés: A legtöbb modul rendelkezik egy index.js fájllal mint belépési ponttal. Ez egyben a main tulajdonsága a package.json fájlnak, ami az npm modulok belépési pontja. Ha azonban a package.json nem található, a Node.js automatikusan betölti az index.js fájlt.

4. test parancs

Ez egy futtatható szkript vagy parancs a projekt tesztjeinek futtatásához. Mivel a tesztelés meghaladja az útmutatónk kereteit, ugorjuk át, és nyomja meg az ENTER.

5. init parancs

Az init parancs kérni fogja a projekt GitHub-tárolóját. Ezt a részt is ugorjuk át, és folytassuk.

6. keywords

Kulcsszavak karakterláncok tömbje, amelyeket egy tárhely keresésére használnak. Javasoljuk, hogy a kulcsszavak pontosak és a projekthez relevánsak legyenek, hogy zökkenőmentesen nyomon követhetők legyenek.

Sorolja fel ezeket a kulcsszavakat karakterláncként, és válassza el őket vesszővel. A projektünkben gépelje be a ip, country, latitude, és longitude szavakat a parancssorba, és látni fogja, hogy kulcsszóként szerepelnek a package.json.

7. author

Kezelje az author mezőt visszajelzésként és a felhasználókkal való interakció eszközeként. Például, ha a felhasználók hibát észlelnek a modulban, ezen a mezőn keresztül értesíthetik Önt, és kérhetik a hiba javítását.

  • Formátum: "Név \<E-mail\> (Weboldal)".

    • Demó: "Paul\<paul@your_domain\> (https://your_domain)"

Az e-mail és a weboldal megadása opcionális. Megadhat azonban egy érvényes szerzőt, és hozzáadhatja elérhetőségeit mint author. Erősítse meg az adatokat, majd nyomja meg az ENTER.

8. license

A license mező azokat a jogi feltételeket mutatja be, amelyeket a felhasználóknak ismerniük kell a modul használata során. Mivel a Node.js modulok nyílt forráskódúak, az npm automatikusan az ISC-license sémára konfigurálja.

Navigáljon a nyílt forráskódú licencek oldalára, és válassza ki azt az Open Source Initiative licencet, amely a leginkább megfelel az igényeinek. Gépelje be az UNLICENSED szót a parancssorba, ha nincs szüksége licencre a tárhelyéhez. Ebben az útmutatóban az alapértelmezett ISC licencet fogjuk használni. Nyomja meg az ENTER billentyűt a folyamat befejezéséhez.

Az init parancs létrehozza a package.json fájlt, és megjeleníti az eredményt:

Node.js Modules npm init

Ezután nyomja meg az ENTER billentyűt a folytatáshoz és a package.json fájl létrehozásához. A JSON fájlunk nyilvántartja az összes olyan modult és csomagot, amelyet a projektünkben telepíteni fogunk.

A következő lépésben a függőségeket és a Node.js modulokat fogjuk telepíteni.

Step 2: Install Dependencies and Modules

Az egyedi külső könyvtárak létrehozása időigényes és komoly erőfeszítést igényel. Alternatív megoldásként a leghatékonyabb módszer az előre meghatározott függőségek és külső könyvtárak telepítése. Ebben az útmutatóban a HTTP könyvtárat fogjuk használni, hogy a demó helymeghatározó modulunk külső API-kérést indíthasson a földrajzi adatok összegyűjtésére.

Ebben az útmutatóban az axios könyvtárat fogjuk használni HTTP-kérések indításához. Először telepítsük az axios-t:

Kezdje az npm csomag telepítésével, majd sorolja fel őket szóközzel elválasztva. Emellett adja hozzá a --save jelzőt, hogy a projekt függőségeként legyen elmentve.

A következő kimenetet fogja látni:

Node.js Modules install axios

Nyissa meg a package.json fájlt a nano vagy egy tetszőleges szövegszerkesztő segítségével:

Figyelje meg az újonnan hozzáadott tulajdonságot, amely a kódblokk alján van kiemelve:

Node.js Modules package json

  • Fejlesztési függőségek letöltése

A fejlesztési függőségek olyan csomagok, amelyeket a projekt fejlesztése során használnak, és nincs szerepük a projekt éles működésében (production) vagy karbantartásában. Bár ezek a függőségek feleslegesnek tűnhetnek az éles környezetben, jelentős szerepet játszanak a kódok írásában és újraírásában.

A kódellenőrzőkhöz (linterekhez) hasonlóan a fejlesztési függőségek is létfontosságú szerepet játszanak a szoftverfejlesztésben. A fejlesztők leggyakrabban kódellenőrzőket (code linters) használnak a stílus egységességének és konzisztenciájának fenntartására a projektfejlesztés során, ami egyébként az éles környezetben már szükségtelen.

Telepítsünk egy lintert fejlesztési függőségként a projekthez. Használja a --save-dev jelzőt, hogy elmentse az eslint csomagot a fejlesztéshez szükséges függőségként:

Hozzáadtuk a @6.0.0 karaktert a függőségünkhöz, hogy a modulok frissítésekor verziócímkét kapjanak. A @ szimbólum jelzi az npm számára, hogy keressen rá a telepíteni kívánt specifikus verzióra. Most nyissa meg újra a package.json fájlt:

A következő kimenetet fogja látni:

dev package json

  • Automatikusan generált fájlok: node_modules és package-lock.json

Kezdetben, amikor egy csomagot telepít a Node.js projektbe, a package.json és a package-lock.json fájlok automatikusan létrejönnek. Ellenőrizze ezeket a fájlokat a munkakönyvtárban:

Mivel a legtöbb telepített függőség a node_modules mappát, ajánlatos ezt a mappát nem commitolni a verziókövető tárhelybe. A telepített függőségek számának növekedésével a node_modules mérete is növekszik.

Ezzel szemben a package-lock.json fájl nyilvántartja a pontosan telepített verziókat, így nincs szükség a node_modules explicit belefoglalására. Ellentétben a node_modules mappával, ezt a fájlt commitolhatja a verziókövető tárhelyébe, mert részletes képet ad az összes függőségéről és azok verzióiról.

  • Telepítés a package.json

A package.json és package-lock.json fájlok lehetővé teszik, hogy ugyanazokat a projektfüggőségeket állítsa be a projektfejlesztés megkezdése előtt. Navigáljon a könyvtárfájához, és hozzon létre egy új mappát a locatorral azonos könyvtárszinten. Nevezze el az új mappát így: cloned_locator:

Ezután lépjen be a cloned_locator:

Importálja a package.json és package-lock.json fájlokat a locator könyvtárból a cloned_locator:

A . az aktuális mappát jelöli. Telepítse a szükséges modulokat a következő paranccsal:

Kezdetben az npm ellenőrzi a package-lock.json fájlt a modulok telepítéséhez. Ha a lock fájl nem érhető el, akkor a package.json fájlt olvassa be a telepítések meghatározásához.

Általánosságban elmondható, hogy a package-lock.json fájlból történő telepítés egyszerű, mert a lock fájl tartalmazza a modulok és függőségeik pontos verzióját. Ez azt jelenti, hogy amikor a package.json, npm az npm megspórolja a kompatibilis és stabil verzió meghatározásához szükséges plusz időt.

Hagyja figyelmen kívül a fejlesztési függőségeket a --production tag hozzáadásával:

Ezután lépjen vissza a locatorhoz:

  • Globális telepítések

Eddig a npm modulokat helyileg telepítettük. Van azonban lehetőség a csomagok globális telepítésére is, és azok parancssorból vagy CLI-ből történő használatára. Például navigálhat az aktuális locator projektben a Hexo könyvtár használatával, és kezelheti statikus webhelyét. Használja a következő parancsot a -g taggel a Hexo CLI globális telepítéséhez:

Megjegyzés: Ha hibaüzenetet kap a csomagok globális telepítése során, próbálja meg ezt a parancsot sudo npm i hexo-cli -g  root jogosultságokkal.

A következő paranccsal ellenőrizheti, hogy a csomag sikeresen telepítve lett-e:

A következő kimenetet fogja látni:

hexo version

3. lépés: Modulok kezelése és frissítése

Egy csomagkezelőnek több dolga van, mint pusztán a Node.js modulok telepítése. Rengeteg testreszabási lehetőség áll rendelkezésre, ahol tetszés szerint listázhatja, frissítheti, eltávolíthatja a modulokat, vagy akár biztonsági réteget is hozzáadhat.

Ebben a részben megtanuljuk, hogyan kell:

  1. Modulok listázása

  2. Modulok frissítése

  3. Modulok eltávolítása

  4. Modulok auditálása

Beszéljük meg mindegyiket részletesen:

  1. Modulok listázása

A modulok listázása, ahogy a név is sugallja, részletes információt nyújt a projektre telepített összes modulról. A package.json fájl olvasása helyett a ls vagy list parancsot használhatja a projekt moduljainak részletes megismeréséhez:

A következő kimenetet fogja látni:

npm list op

Alapértelmezés szerint a ls parancs a teljes függőségi fát listázza, amely tartalmazza a projekt függőségeit és azokat a modulokat is, amelyektől függnek. Azonban madártávlati képet is kaphat, és kifejezetten egy adott modult is megcélozhat. Használja a következő parancsot a telepített modulok ellenőrzéséhez a függőségeik nélkül:

A következő kimenetet fogja látni:

npm list depth zero

  1. Modulok frissítése

Mindig tanácsos naprakészen tartani az npm modult, hogy elkerülje a szoftverösszeomlásokat vagy konfliktusokat. Használja a következő parancsot annak ellenőrzésére, hogy szükség van-e frissítésre:

A következő kimenetet fogja látni:

Outdated

Ismerjük meg részletesen az egyes kifejezéseket:

  • Package: Ez listázza a projektben jelenleg telepített Package csomagot.
  • Current: Ez mutatja a csomag Current verzióját.
  • Wanted: Shows the npm verzió, amely a legjobban megfelel a verziókövetelménynek a package.json.
  • Legújabb: Megmutatja a legújabb npm kiadást, amelyre frissítenie kell, ha szükséges.
  • Hely: A csomag Location a függőségi fában.

Ahogy javasoltuk, frissíthetjük az npm szoftvert egy stabil verzióra. Használja a következő parancsot a jelenlegi csomag frissítéséhez:

A következő kimenetet fogja látni:

update eslint

Ahelyett, hogy egyenként frissítené őket, az összes modult egyszerre is frissítheti a up paranccsal:

  1. Modulok eltávolítása

Sokszor előfordulhat, hogy egy függőség nem a várt eredményt mutatja, és egyedi függőséget kell létrehoznia. Ilyen esetekben lehetősége van eltávolítani a függőségeket a package.json és package-lock.json fájlokból. Tegyük fel, hogy az axios függőségként van megadva, és nem nyújt kielégítő eredményt. Kétségtelenül el fogja távolítani ezt a tárolót a projektjéből. Használja az uninstall vagy un parancsot a axios:

A következő kimenetet fogja látni:

Uninstall axios

Bár az uninstall parancs eltávolította a függőséget, nem kaptunk értesítést az eltávolításáról. Listázzuk ki a függőségeket, hogy lássuk, hány függőségünk van most:

A kimenetben látni fogja, hogy az axios függőség már nem szerepel a listában:

npm list

  1. Modulok vizsgálata (Audit)

Ha a projektbe telepített függőségek potenciális biztonsági fenyegetésnek vannak kitéve, észlelheti őket. Először telepítenie kell a request modul egy elavult verzióját, hogy lássa, hogyan működik az audit modul:

Látni fogja a kimenetet, amely felszólítja a fenyegetések vagy sebezhetőségek javítására:

add request

A sebezhetőségek és fenyegetések részleteinek kibontásához használja az audit parancsot:

Egy részletes biztonsági jelentést fog látni:

Node.js Modules Audit security report

Ezen sebezhetőségek feloldásához használja a fix parancsot:

A következő kimenetet fogja látni:

audit update

Észrevehette, hogy a kilenc sebezhetőségből kettő javításra került. A fennmaradó hét sebezhetőség azonban továbbra is fennáll a függőségeiben, mert az audit fix nem old meg minden problémát. A probléma megoldásához szükség lehet a függőség frissítésére egy magasabb verzióra egy másik API használatával. Legyen óvatos a frissítéskor, mert fennáll a valószínűsége annak, hogy feltöri a kódot a függőségi fa magasabb szintjein. Használja a következő parancsot annak ellenőrzésére, hogy a sebezhetőségek eltűntek-e:

Legyen körültekintő, amikor más API-t használ a sebezhetőségi fenyegetések megoldására, mert ha nem biztos benne, az a kód működésének meghibásodásához vezethet.

Összegzés

Összefoglalva, bemutattuk, hogyan kell használni a Node.js modulokat az npm és a package.json segítségével. Emellett áttekintettük a csomagfüggőségek listázásának, frissítésének, kezelésének, vizsgálatának és eltávolításának módszereit. Következő kihívásként arra bátorítjuk, hogy használja az ebben az útmutatóban tárgyalt fogalmakat, és kísérletezzen a csomagok telepítésével és tesztelésével saját maga. Megpróbálhat Node.js alkalmazásokat építeni és függőségeket konfigurálni a tanulás elmélyítése érdekében.

Emellett számos más tananyagot is találhat a Node.js és Javascript témakörökben a blogunkon:

Kellemes számítástechnikát!

author

Preslav Dobrev

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.