Sobes.tech
Junior

Co je to soubor package.json v Node.js a jakou roli hraje v projektu?

sobes.tech AI

Odpověď od AI

package.json je Node.js projektum manifestuma, amely tartalmazza a függőségek kezeléséhez, az építéshez és az alkalmazás futtatásához szükséges metaadatokat.

Fő mezők és szerepük:

  1. name: A projekt neve.
  2. version: A projekt aktuális verziója.
  3. description: A projekt rövid leírása.
  4. keywords: Kulcsszavak tömbje a projekt leírásához.
  5. homepage: A projekt honlapjának URL-je.
  6. bugs: Objektum a hibakövető információkkal.
  7. license: A projekt licenc típusa.
  8. author: A projekt szerzőjének adatai.
  9. contributors: A hozzájárulók listája.
  10. files: Fájlok tömbje, amelyek a csomag közzétételekor kerülnek belefoglalásra.
  11. main: A belépési pont az alkalmazásban (fő fájl).
  12. browser: A kliensoldali belépési pont (ha alkalmazható).
  13. bin: Parancsok, amelyek globálisan elérhetőek a csomag telepítésekor.
  14. man: Man oldal fájlok útvonalai.
  15. directories: Objektum a projekt könyvtárainak útvonalairól (pl. lib, bin, man, doc).
  16. repository: Objektum a forráskód tárolójának információival.
  17. scripts: Objektum, amely tartalmazza az npm-mel futtatható szkripteket.
  18. config: Objektum a szkriptekhez kapcsolódó beállításokhoz.
  19. dependencies: Objektum a produkciós függőségekhez.
  20. devDependencies: Objektum a fejlesztéshez és teszteléshez szükséges függőségekhez.
  21. peerDependencies: A csomag felhasználójának is függnie kell ezektől.
  22. bundledDependencies: Függőségek neveit tartalmazó tömb, amelyeket a csomag részeként kell csomagolni.
  23. optionalDependencies: Opcionális függőségek, amelyek telepíthetők, de hiányuk nem okoz telepítési hibát.
  24. engines: Objektum a támogatott Node.js és npm verziókról.
  25. os: Operációs rendszerek tömbje, amelyeken a projekt fut.
  26. cpu: CPU architektúrák tömbje.
  27. preferGlobal: Logikai érték, hogy a csomagnak globálisan kell-e települnie.
  28. private: Logikai érték, hogy a csomag privát-e, és nem szabad-e publikálni az npm-re.
  29. publishConfig: Beállítások az npm-re való publikáláshoz.
{
  "name": "my-node-app", // A projekt neve
  "version": "1.0.0", // A projekt verziója
  "description": "Egyszerű Node.js alkalmazás",
  "main": "index.js", // Belépési pont
  "scripts": {
    "start": "node index.js", // Indító szkript
    "test": "echo \"Hiba: nincs megadva teszt\" && exit 1" // Teszt szkript
  },
  "keywords": [
    "node",
    "példa"
  ],
  "author": "Az Ön Neve",
  "license": "ISC",
  "dependencies": { // Produkciós függőségek
    "express": "^4.18.2"
  },
  "devDependencies": { // Fejlesztési függőségek
    "nodemon": "^2.0.20"
  }
}

A package.json kulcsfontosságú szerepet játszik a függőségek kezelésében (telepítés, frissítés, eltávolítás), a szkriptek automatikus feladatokhoz való meghatározásában (indítás, tesztelés, építés), a projekt metaadatainak szolgáltatásában az npm és más eszközök számára, valamint a projekt építésének reprodukálhatóságának biztosításában.