NPM
Főnév
NPM (tsz. NPMs)
- (informatika) Az NPM (Node Package Manager) a Node.js hivatalos csomagkezelő rendszere, amely lehetővé teszi a fejlesztők számára, hogy könnyen kezeljenek, telepítsenek és osszanak meg JavaScript-csomagokat (könyvtárakat, modulokat) a projektjeikhez. Az NPM a világ legnagyobb nyílt forráskódú szoftverek katalógusát tartalmazza, és elengedhetetlen eszköz a modern JavaScript és Node.js alapú alkalmazások fejlesztéséhez.
Főbb funkciók és jellemzők:
- Csomagok telepítése:
- Az NPM segítségével egyszerűen telepíthetőek nyílt forráskódú modulok és könyvtárak, amelyek megkönnyítik a fejlesztést. A fejlesztők csomagokat kereshetnek és telepíthetnek a terminálon keresztül. A telepített csomagokat a
node_modulesmappában tárolja az NPM, és a package.json fájlban tartja nyilván.
- Az NPM segítségével egyszerűen telepíthetőek nyílt forráskódú modulok és könyvtárak, amelyek megkönnyítik a fejlesztést. A fejlesztők csomagokat kereshetnek és telepíthetnek a terminálon keresztül. A telepített csomagokat a
- Csomagok kezelése:
- A NPM lehetőséget ad a csomagok könnyű frissítésére, eltávolítására és karbantartására. A függőségek telepítése mellett a verziók kezelésére is szolgál, így a fejlesztők pontosan szabályozhatják, melyik csomag melyik verzióját használják.
- package.json fájl:
- A
package.jsonfájl a projekt központi nyilvántartási pontja. Ez a fájl tartalmazza a projekt nevét, verzióját, a szükséges függőségek listáját és azok verzióit, valamint egyéb metaadatokat. Apackage.jsonmegkönnyíti a projekt reprodukálhatóságát és együttműködését más fejlesztőkkel.
- A
- NPM Registry:
- Az NPM csomagok és modulok központi tárolója a NPM Registry, amely nyílt forráskódú modulok millióit tartalmazza. Fejlesztők feltölthetik saját csomagjaikat, hogy mások is felhasználhassák azokat, és nyilvánosan elérhetővé tehetik a közösség számára.
- Globális és helyi telepítés:
- Az NPM lehetőséget biztosít csomagok helyi és globális telepítésére. A helyi telepítés azt jelenti, hogy egy adott projekt mappáján belül telepítünk egy modult, amelyet csak az adott projekt használ. A globális telepítés esetén a csomag az egész rendszerben elérhetővé válik, és bármelyik projektben használható.
- Skriptkezelés:
- Az NPM képes különféle parancsfájlokat (script) futtatni, például tesztelési vagy build folyamatokat. A
package.jsonfájlban definiált szkriptek egyszerűen futtathatók aznpm runparancs segítségével. Ez megkönnyíti a fejlesztési folyamatokat, például a kód tesztelését, fordítását és a deployolást.
- Az NPM képes különféle parancsfájlokat (script) futtatni, például tesztelési vagy build folyamatokat. A
Főbb parancsok:
npm init:- Egy új Node.js projekt létrehozásához használt parancs, amely létrehozza a
package.jsonfájlt, és felkéri a felhasználót a projekt alapvető adataira (név, verzió, leírás stb.).
- Egy új Node.js projekt létrehozásához használt parancs, amely létrehozza a
npm installvagynpm i:- Csomagok telepítéséhez használható. Az
npm installparanccsal telepíthetők a projekt összes függősége, amelyeket apackage.jsonfájlban definiáltak. Ezzel a paranccsal egy adott csomag is telepíthető, példáulnpm install expressparancsra telepíti az Express modult.
- Csomagok telepítéséhez használható. Az
npm install -g:- Globális telepítésre használható. A
-gkapcsolóval a csomag globálisan elérhető lesz a rendszerben. Ez különösen hasznos olyan eszközök esetében, amelyeket gyakran használunk több projektben is, példáulnpm install -g typescript.
- Globális telepítésre használható. A
npm update:- Az összes telepített függőség frissítéséhez használható. Az NPM frissíti a projektben használt modulokat a legújabb kompatibilis verziókra.
npm uninstall:- A telepített csomagok eltávolítására szolgáló parancs. Például az
npm uninstall lodashparanccsal eltávolítható a lodash modul a projektből.
- A telepített csomagok eltávolítására szolgáló parancs. Például az
npm run:- A
package.jsonfájlban definiált szkriptek futtatására szolgál. Például, ha atestszkriptet definiáltuk, akkor aznpm run testparancs futtatja azt.
- A
Előnyök:
- Nagyon gazdag ökoszisztéma:
- Az NPM az egyik legnagyobb csomagközösség, amely lehetővé teszi, hogy fejlesztők gyorsan megtaláljanak és integráljanak különböző könyvtárakat és megoldásokat a projektjükbe.
- Egyszerű függőségkezelés:
- Az NPM automatikusan kezeli a projekt függőségeit, figyeli a verziókat és gondoskodik arról, hogy minden szükséges modul megfelelően telepítve legyen.
- Könnyű megosztás:
- A fejlesztők könnyedén közzétehetik saját csomagjaikat az NPM Registry-ben, ami elősegíti a közösség fejlődését és a kód újrahasznosítását.
- Globális eszközök telepítése:
- Az NPM lehetővé teszi olyan parancssori eszközök globális telepítését, mint például a TypeScript, ESLint, Webpack stb., amelyeket aztán bármely projektben használhatunk.
Hátrányok:
- Függőségek túlzott növekedése:
- Az NPM által kínált sok csomag könnyen a függőségek túlburjánzásához vezethet, ahol egy projekt túl sok külső modult használ, ami bonyolultabbá és nehezebben karbantarthatóvá teszi a kódbázist.
- Biztonsági kockázatok:
- Mivel az NPM nyílt forráskódú csomagokat kínál, fennáll a veszélye annak, hogy rosszindulatú kód vagy biztonsági sebezhetőség rejtőzik egy adott csomagban. Ezért fontos, hogy a fejlesztők rendszeresen ellenőrizzék a függőségek biztonságát.
- Inkompatibilitási problémák:
- A csomagfrissítések során gyakran előfordulhatnak verzió- és kompatibilitási problémák, amikor egyes modulok nem működnek megfelelően a projektben, ha nem gondosan kezeljük a verziókat.
Összefoglalás:
Az NPM a JavaScript és a Node.js ökoszisztéma alapvető eszköze, amely jelentősen megkönnyíti a csomagok telepítését, kezelését és megosztását. Az egyszerű függőségkezelés és az óriási csomagközösség révén az NPM lehetővé teszi, hogy fejlesztők gyorsan létrehozzanak komplex alkalmazásokat, és megosszák a megoldásaikat a közösséggel. Mivel az NPM a modern JavaScript fejlesztés alapvető része, a hatékony használata fontos minden Node.js fejlesztő számára.
Itt van néhány népszerű Node.js csomag, amelyeket gyakran használnak különböző projektekben, mind szerveroldali, mind kliensoldali alkalmazásokhoz:
1. Express.js
- Leírás: Az Express.js az egyik legnépszerűbb és legszélesebb körben használt webes keretrendszer a Node.js környezetében. Egyszerű és rugalmas, ideális REST API-k és webes alkalmazások készítésére.
- Használat: Webes alkalmazások, REST API-k készítése.
- Telepítés:
npm install express - Express.js hivatalos oldal
2. Lodash
- Leírás: A Lodash egy olyan segédkönyvtár, amely hasznos funkciókat biztosít az objektumok, tömbök, karakterláncok kezeléséhez és egyéb adatfeldolgozási műveletekhez.
- Használat: Adatmanipuláció és függvények optimalizálása.
- Telepítés:
npm install lodash - Lodash hivatalos oldal
3. Mongoose
- Leírás: A Mongoose egy MongoDB adatbáziskezelő könyvtár, amely lehetővé teszi az adatbázis kezelését és modellezését. Könnyen kezelhető interfészt biztosít a MongoDB számára, amely validációt és adatmodellezést is kínál.
- Használat: MongoDB adatbázis kezelése Node.js környezetben.
- Telepítés:
npm install mongoose - Mongoose hivatalos oldal
4. Axios
- Leírás: Az Axios egy népszerű HTTP kliens, amely segítségével egyszerűen küldhetünk kéréseket szerverekhez, letölthetünk adatokat és kezelhetünk API hívásokat. Támogatja az aszinkron kódot és a Promises használatát.
- Használat: API hívások és HTTP kérések kezelése.
- Telepítés:
npm install axios - Axios hivatalos oldal
5. Socket.io
- Leírás: A Socket.io egy valós idejű, kétirányú kommunikációs könyvtár, amely lehetővé teszi a szerver és a kliens közötti valós idejű üzenetküldést websoketteken keresztül.
- Használat: Valós idejű kommunikációs alkalmazások, mint például chat rendszerek és valós idejű játékok.
- Telepítés:
npm install socket.io - Socket.io hivatalos oldal
6. Jest
- Leírás: A Jest egy JavaScript tesztelési keretrendszer, amelyet főleg unit tesztek futtatására és aszinkron kód tesztelésére használnak. Könnyen integrálható bármely JavaScript alapú projekthez.
- Használat: Egységtesztelés (unit testing) és más típusú tesztelés JavaScript kódhoz.
- Telepítés:
npm install jest - Jest hivatalos oldal
7. PM2
- Leírás: A PM2 egy Node.js processzmenedzser, amely segít a Node.js alkalmazások üzemeltetésében, skálázásában és folyamatainak kezelésében. Automatikus újraindítást kínál hibák esetén, és könnyen kezelhető.
- Használat: Node.js alkalmazások üzemeltetése és felügyelete termelési környezetben.
- Telepítés:
npm install pm2 -g - PM2 hivatalos oldal
8. Passport.js
- Leírás: A Passport.js egy felhasználóbarát hitelesítési middleware, amely támogatja a különféle hitelesítési stratégiákat, például OAuth, OpenID és más egyéni hitelesítési módszerek használatát.
- Használat: Felhasználói hitelesítés webes alkalmazásokban.
- Telepítés:
npm install passport - Passport.js hivatalos oldal
9. Bcrypt.js
- Leírás: A Bcrypt.js egy könyvtár, amely biztonságos hash-elést és jelszótárolási módszereket kínál. Gyakran használják a felhasználói jelszavak titkosítására.
- Használat: Jelszavak biztonságos hash-elése és tárolása.
- Telepítés:
npm install bcryptjs - Bcrypt.js GitHub oldal
10. Morgan
- Leírás: A Morgan egy HTTP kérésnaplózó middleware, amely segít a bejövő HTTP kérések logolásában a Node.js szerverek számára. Hasznos fejlesztés és hibakeresés során.
- Használat: HTTP kérések naplózása a szerveroldali alkalmazásokban.
- Telepítés:
npm install morgan - Morgan NPM oldal
11. Moment.js (alternatíva: Day.js)
- Leírás: A Moment.js egy népszerű könyvtár, amely az idő és dátum kezelését egyszerűsíti JavaScript-ben. Az újabb projektben inkább a Day.js-t részesítik előnyben, mivel az könnyebb és modernebb alternatíva.
- Használat: Dátumok és időkezelés.
- Telepítés:
npm install momentvagynpm install dayjs - Moment.js hivatalos oldal vagy Day.js hivatalos oldal
12. CORS
- Leírás: A CORS egy middleware, amely lehetővé teszi, hogy szabályozza a böngészők és a szerverek közötti kéréseket különböző domainek között. Ez szükséges az API-khoz és olyan alkalmazásokhoz, ahol több domain közötti kommunikáció történik.
- Használat: Cross-Origin Resource Sharing engedélyezése webes alkalmazásokban.
- Telepítés:
npm install cors - CORS NPM oldal
Összegzés:
Ezek a Node.js csomagok számos különböző területen nyújtanak hasznos funkciókat, például webfejlesztés, adatbázis-kezelés, valós idejű kommunikáció, hitelesítés és tesztelés. Mindegyik modul az NPM segítségével egyszerűen telepíthető és integrálható Node.js projektekbe.