npm: alapok, a React Native és Node.js csomagkezelője

Szerző: IT Sectr Megjelenés: 2026-02-13 Olvasási idő: 10 perc

npm (Node Package Manager) — a Node.js platform szabványos csomagkezelője, amely a Node.js telepítőcsomag része. Az npm kezeli a JavaScript és TypeScript projektek függőségeit: könyvtárakat telepít a node_modules mappába, frissíti a csomagverziókat, feloldja a verziókonfliktusokat. package.json — a központi konfigurációs fájl metaadatokkal és függőségi listával. npm Registry — a legnagyobb csomagregisztráció. Bővebben a npm Registry oldalon.

Főbb pontok

  • npm — a Node.js szabványos csomagkezelője, a Node.js telepítés része a 0.6.3 verzió óta
  • package.json — a projekt konfigurációs fájlja függőségekkel, szkriptekkel és metaadatokkal
  • npm install — az alapvető parancs a függőségek telepítésére a package.json-ból a node_modules mappába
  • package-lock.json — a pontos verziók rögzítésére szolgáló fájl reprodukálható telepítésekhez minden környezetben
  • npm ci — parancs CI/CD számára, amely szigorúan a lock-fájl szerint telepíti a csomagokat annak frissítése nélkül

Mi az npm — a Node.js csomagkezelője?

npm 2010-ben készült Isaac Schlueter által a Node.js függőségek kezelésének megoldásaként. 2014 óta az npm-et az npm, Inc. vállalat kezeli, amelyet a Microsoft/GitHub vásárolt fel 2020-ban. Az eszköz két részből áll: CLI (parancssor) a csomagok telepítéséhez és kezeléséhez, valamint a Registry — az összes közzétett modul központi tárolója a registry.npmjs.org címen.

npm Registry — a legnagyobb csomagregisztráció: több mint 2 millió csomag és havonta több mint 10 milliárd letöltés. Minden csomag rendelkezik SemVer-verzióval, leírással, függőségekkel, licenccel és szerzőséggel. Saját csomag közzététele az npm publish segítségével történik. Az npm támogatja a szervezetek számára készült scoped csomagokat (@scope/package), privát regisztrációkat és beépített biztonsági auditot.

Node.js 18+ verziója tartalmazza az npm 9+-et javított teljesítménnyel, monorepók számára workspaces-szel és átdolgozott peer dependencies mechanizmussal. Az npm ökoszisztéma magában foglalja a szerveroldali JavaScriptet, a frontendet (React, Vue, Angular), a mobilfejlesztést (React Native), a build eszközöket (Webpack, Vite) és a CLI segédprogramokat. Az npm a JavaScript könyvtárak fő terjesztési csatornája.

Az npm fő képességei

npm install — a fő parancs, amely beolvassa a package.json-t és a package-lock.json-t az összes függőség node_modules mappába történő telepítéséhez. Az első futtatáskor az npm kiszámítja a függőségi gráfot, feloldja a verziókonfliktusokat és létrehozza a package-lock.json-t. A npm install <package> parancs egy adott csomagot telepít; a --save-dev zászló a devDependencies-hez, a --global pedig globálisan adja hozzá.

npx — a csomagvégrehajtó, amely az npm 5.2 verziója óta része. Az npx lehetővé teszi CLI segédprogramok futtatását globális telepítés nélkül: npx react-native init vagy npx create-react-app my-app. Az npx letölti a csomagot egy ideiglenes gyorsítótárba, futtatja, majd befejezés után kitakarítja. Az npx hasznos az eszközök adott verzióinak futtatásához is.

npm audit átvizsgálja a függőségi fát ismert sebezhetőségekre az npm adatbázisából. A parancs jelentést jelenít meg kritikussági szintekkel (critical, high, moderate), és javasolja az npm audit fix-et a sérülékeny csomagok automatikus frissítéséhez. npm cache tárolja a letöltött csomagokat lokálisan. Az npm cache clean --force törli a gyorsítótárat telepítési problémák esetén. Az npm outdated megjeleníti az elavult csomagokat.

bash
# Fő npm parancsok
$ npm install
$ npm install react-native-webview --save
$ npm install typescript --save-dev
# Futtatás globális telepítés nélkül
$ npx react-native init MyApp
# Biztonsági audit
$ npm audit --fix

A package.json szerkezete és függőségkezelés

package.json — egy JSON-fájl a projekt gyökerében, amely leírja annak metaadatait, függőségeit és konfigurációját. Kötelező mezők: name (a csomag egyedi neve) és version (SemVer-verzió, pl. 1.0.0). A fájl az npm init -y paranccsal hozható létre gyors inicializáláshoz vagy manuálisan.

Semantic Versioning (SemVer) — a MAJOR.MINOR.PATCH verziózási szabvány. A főverzió nem kompatibilis API-változásoknál, a mellékverzió funkcionalitás hozzáadásakor (visszafelé kompatibilis), a javítás hibajavításkor változik. A ^ szimbólum a verzió előtt engedélyezi a mellék- és javításverziók frissítését, a ~ csak a javításverziót.

json
{
  "name": "my-app",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios"
  },
  "dependencies": {
    "react": "^18.3.0",
    "react-native": "^0.76.0"
  },
  "devDependencies": {
    "typescript": "^5.5.0",
    "@types/react": "^18.3.0"
  }
}
MezőCélPélda érték
scriptsFuttatási parancsok npm run-hoz"start": "node index.js"
dependenciesAz alkalmazás éles függőségei"react": "^18.3.0"
devDependenciesFejlesztői és teszteszközök"jest": "^29.7.0"
peerDependenciesHost függőségek könyvtárak számára"react": ">=17.0.0"
enginesNode.js verziókövetelmények{"node": ">=18.0.0"}

npm a React Native fejlesztésben

React Native projektek aktívan használják az npm-et a függőségek kezelésére. A szabványos készlet tartalmazza a react, react-native, navigációs könyvtárakat (React Navigation), HTTP-kéréseket (axios), állapotkezelést (Redux, Zustand) és UI-komponenseket. Az npm lehetővé teszi több ezer kompatibilis csomag telepítését a regisztrációból.

npx pod-install — kötelező parancs natív modulok telepítése után React Native-ben iOS számára. Az npm automatikusan létrehozza a Podfile.lock-ot a package-lock.json alapján. Expo projektekben az expo install használatos az npm install helyett, mert az aktuális Expo SDK verzióval kompatibilis verziókat választ.

Verziókonfliktusok — gyakori probléma a React Native-ben: a react-native-reanimated, react-native-gesture-handler és react-native-safe-area-context összehangolt verziókat igényel. Megoldás — frissíteni az összes csomagot a legújabb kompatibilis verziókra, vagy használni a --legacy-peer-deps-et. A package-lock.json kritikus fontosságú a CocoaPods-on és Gradle-en keresztül fordított natív modulokhoz.

Az npm összehasonlítása alternatív kezelőkkel

npm — a szabványos csomagkezelő, a Node.js része. Fő alternatívák: yarn (a Facebook által 2016-ban létrehozva) és pnpm (gyors, kemény linkekkel). Az npm 5 óta a sebességbeli és funkcionalitásbeli különbség az npm és a yarn között minimális. Az npm 7+ hozzáadta a workspaces-t, ami versenyképessé teszi monorepók számára.

Jellemzőnpmyarnpnpm
Létrehozás éve201020162017
Lock-fájlpackage-lock.jsonyarn.lockpnpm-lock.yaml
TelepítésSzekvenciális (npm 5+)PárhuzamosPárhuzamos
LemezterületSzabványosSzabványosMinimális (linkek)
WorkspacesIgen (npm 7+)IgenIgen
Plug'n'PlayNemIgenNem

A State of JS 2025 szerint: az npm-et a fejlesztők 62%-a használja, a yarn-t — 35% (főleg régi projektek és PnP-rajongók), a pnpm-et — 3%. React Native projektekhez mindkét eszköz egyenértékű, de az npm gyakrabban fordul elő Expo SDK 50+ projektekben és új React Native inicializálásoknál.

yarn megtartja előnyét rendkívül nagy monorepókban (100+ csomag) a workspaces és Plug'n'Play érettebb implementációja miatt. A pnpm a lemezterület megtakarításában nyer a globális tárolóra mutató kemény linkek révén. A kezelő kiválasztása a csapat preferenciáitól és az infrastruktúrától függ.

Gyakran Ismételt Kérdések

Mi a különbség az npm install és az npm ci között?

npm install frissíti a package-lock.json-t, és új mellékverziókat telepíthet a szemantikus tartományon belül. npm ci (Clean Install) törli a node_modules-t, és szigorúan a package-lock.json szerint telepíti a csomagokat annak frissítése nélkül. Az npm ci gyorsabb, CI/CD-ben használatos, és azonos környezetet garantál minden gépen. Ha a package-lock.json hiányzik, az npm ci hibát jelez.

Hogyan javíthatók a peer dependencies konfliktusok az npm-ben?

Az npm 7-től kezdve a peer dependencies konfliktusok build-hibát okoznak. Megoldások: frissíteni az összes csomagot kompatibilis verziókra npm update segítségével, használni a --legacy-peer-deps zászlót az npm 6 módhoz, vagy hozzáadni egy overrides szakaszt a package.json-hoz egy adott csomag verziójának kényszerített rögzítéséhez. A legjobb megoldás — a függőségek frissítése kompatibilis verziókra.

Mi az npm audit és miért van rá szükség?

npm audit átvizsgálja a függőségi fát ismert sebezhetőségekre az npm Security Advisory adatbázisából. A parancs jelentést jelenít meg kritikussági szinttel (critical, high, moderate, low), és javasolja az npm audit fix-et a sérülékeny csomagok automatikus frissítéséhez biztonságos verziókra. Az npm audit rendszeres futtatása — alapvető biztonsági gyakorlat JavaScript projektekben.

Hogyan egyszerűsítik az npm workspaces-ek a monorepókat?

npm workspaces lehetővé teszik több csomag kezelését egyetlen tárolóban. Adja hozzá a "workspaces": ["packages/*"] mezőt a gyökér package.json-hoz. Előnyök: az összes függőség egységes telepítése egy megosztott node_modules mappába, automatikus szimbolikus linkek a helyi csomagok között, szkriptek futtatása az összes csomaghoz a gyökérből, verzióduplikáció megszüntetése.

Miért kell a package-lock.json-t commit-olni a tárolóba?

package-lock.json rögzíti az összes függőség és azok tranzitív csomagjainak pontos verzióját. Enélkül a különböző fejlesztők és CI-szerverek eltérő könyvtárverziókat kaphatnak a szemantikus tartományon belül, ami "az én gépemen működik" típusú hibákhoz vezet. A lock-fájl commit-olása reprodukálható build-eket és azonos viselkedést garantál minden környezetben.

Összefoglaló

  • npm — a Node.js szabványos csomagkezelője, a Node.js telepítés része a 0.6.3 verzió óta
  • package.json — a projekt konfigurációs fájlja függőségekkel, szkriptekkel és metaadatokkal
  • npm install — függőségek telepítése, npm ci — rögzítés package-lock.json alapján CI/CD-hez
  • package-lock.json — pontos verziók rögzítése, kötelező reprodukálható build-ekhez
  • npm Registry — a legnagyobb csomagregisztráció több mint 2 millió modullal
  • npm audit — függőségek biztonsági ellenőrzése sebezhetőségek automatikus javításával
  • npm workspaces — mechanizmus monorepók kezeléséhez megosztott node_modules-szal

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is