Sobes.tech
Junior

Čo je súbor package.json v Node.js a akú úlohu zohráva v projekte?

sobes.tech AI

Odpoveď od AI

package.json je manifest projektu Node.js, ktorý obsahuje metadáta potrebné na správu závislostí, zostavenie a spustenie aplikácie.

Hlavné polia a ich úloha:

  1. name: Názov projektu.
  2. version: Aktuálna verzia projektu.
  3. description: Krátky popis projektu.
  4. keywords: Pole kľúčových slov pre popis projektu.
  5. homepage: URL domovskej stránky projektu.
  6. bugs: Objekt s informáciami o sledovači chýb.
  7. license: Typ licencie projektu.
  8. author: Informácie o autorovi projektu.
  9. contributors: Zoznam prispievateľov.
  10. files: Pole súborov zahrnutých pri publikovaní balíka.
  11. main: Vstupný bod do aplikácie (hlavný súbor).
  12. browser: Vstupný bod pre klientsku časť (ak je vhodné).
  13. bin: Príkazy, ktoré by mali byť dostupné globálne pri inštalácii balíka.
  14. man: Cesty k man stránkam.
  15. directories: Objekt s cestami k adresárom projektu (napríklad lib, bin, man, doc).
  16. repository: Objekt s informáciami o úložisku zdrojového kódu.
  17. scripts: Objekt obsahujúci skripty, ktoré je možné spúšťať pomocou npm.
  18. config: Objekt pre nastavenia špecifické pre skripty.
  19. dependencies: Objekt obsahujúci závislosti potrebné na prevádzku projektu v produkcii.
  20. devDependencies: Objekt obsahujúci závislosti potrebné iba pre vývoj a testovanie.
  21. peerDependencies: Závislosti, od ktorých by mal závisieť aj používateľ balíka.
  22. bundledDependencies: Pole mien závislostí, ktoré by mali byť zabalené s balíkom.
  23. optionalDependencies: Závislosti, ktoré môžu byť nainštalované, ale ich neprítomnosť nezpôsobí chybu pri inštalácii.
  24. engines: Objekt určujúci verzie Node.js a npm podporované projektom.
  25. os: Pole operačných systémov, na ktorých projekt beží.
  26. cpu: Pole architektúr CPU, na ktorých projekt beží.
  27. preferGlobal: Logická hodnota, ktorá určuje, či by mal byť balík inštalovaný globálne.
  28. private: Logická hodnota, ktorá určuje, či je balík súkromný a nemal by byť publikovaný na npm.
  29. publishConfig: Nastavenia pre publikovanie balíka na npm.
{
  "name": "my-node-app", // Názov projektu
  "version": "1.0.0", // Verzia projektu
  "description": "Jednoduchá Node.js aplikácia",
  "main": "index.js", // Vstupný bod
  "scripts": {
    "start": "node index.js", // Skript na spustenie
    "test": "echo \"Chyba: nie je zadaný test\" && exit 1" // Skript na testovanie
  },
  "keywords": [
    "node",
    "príklad"
  ],
  "author": "Vaše Meno",
  "license": "ISC",
  "dependencies": { // Závislosti pre produkciu
    "express": "^4.18.2"
  },
  "devDependencies": { // Závislosti pre vývoj
    "nodemon": "^2.0.20"
  }
}

package.json zohráva kľúčovú úlohu v správe závislostí (inštalácia, aktualizácia, odstránenie), definovaní skriptov pre automatizáciu úloh (spustenie, testovanie, zostavenie), poskytovaní metadát o projekte pre npm a ďalšie nástroje, ako aj zabezpečení reprodukovateľnosti zostavenia projektu.