Sobes.tech
Junior

Czym jest plik package.json w Node.js i jaką rolę odgrywa w projekcie?

sobes.tech AI

Odpowiedź od AI

package.json jest manifestem projektu Node.js zawierającym metadane niezbędne do zarządzania zależnościami, budowania i uruchamiania aplikacji.

Główne pola i ich rola:

  1. name: Nazwa projektu.
  2. version: Aktualna wersja projektu.
  3. description: Krótki opis projektu.
  4. keywords: Tablica słów kluczowych do opisu projektu.
  5. homepage: URL strony głównej projektu.
  6. bugs: Obiekt z informacjami o śledzeniu błędów.
  7. license: Typ licencji projektu.
  8. author: Informacje o autorze projektu.
  9. contributors: Lista współtwórców.
  10. files: Tablica plików dołączanych przy publikacji pakietu.
  11. main: Punkt wejścia do aplikacji (główny plik).
  12. browser: Punkt wejścia dla części klienta (jeśli dotyczy).
  13. bin: Komendy dostępne globalnie po instalacji pakietu.
  14. man: Ścieżki do plików stron man.
  15. directories: Obiekt z ścieżkami do katalogów projektu (np. lib, bin, man, doc).
  16. repository: Obiekt z informacjami o repozytorium kodu źródłowego.
  17. scripts: Obiekt zawierający skrypty, które można uruchamiać za pomocą npm.
  18. config: Obiekt dla ustawień specyficznych dla skryptów.
  19. dependencies: Obiekt zawierający zależności potrzebne do działania projektu w produkcji.
  20. devDependencies: Obiekt zawierający zależności potrzebne tylko do rozwoju i testowania.
  21. peerDependencies: Zależności, od których użytkownik pakietu również musi zależeć.
  22. bundledDependencies: Tablica nazw zależności, które mają być spakowane z pakietem.
  23. optionalDependencies: Zależności, które mogą być zainstalowane, ale ich brak nie spowoduje błędu.
  24. engines: Obiekt wskazujący wersje Node.js i npm obsługiwane przez projekt.
  25. os: Tablica systemów operacyjnych, na których działa projekt.
  26. cpu: Tablica architektur CPU, na których działa projekt.
  27. preferGlobal: Wartość boolean wskazująca, czy pakiet powinien być instalowany globalnie.
  28. private: Wartość boolean wskazująca, czy pakiet jest prywatny i nie powinien być publikowany w npm.
  29. publishConfig: Ustawienia do publikacji w npm.
{
  "name": "my-node-app", // Nazwa projektu
  "version": "1.0.0", // Wersja
  "description": "Prosta aplikacja Node.js",
  "main": "index.js", // Punkt wejścia
  "scripts": {
    "start": "node index.js", // Skrypt uruchomieniowy
    "test": "echo \"Error: no test specified\" && exit 1" // Skrypt testowy
  },
  "keywords": [
    "node",
    "przykład"
  ],
  "author": "Twoje Imię",
  "license": "ISC",
  "dependencies": { // Zależności produkcyjne
    "express": "^4.18.2"
  },
  "devDependencies": { // Zależności deweloperskie
    "nodemon": "^2.0.20"
  }
}

package.json odgrywa kluczową rolę w zarządzaniu zależnościami (instalacja, aktualizacja, usuwanie), definiowaniu skryptów do automatyzacji zadań (uruchomienie, testowanie, budowa), dostarczaniu metadanych o projekcie dla npm i innych narzędzi, a także zapewnianiu powtarzalności procesu budowania projektu.