Sobes.tech
Junior

Šta je fajl package.json u Node.js i koju ulogu ima u projektu?

sobes.tech АИ

Одговор од АИ

package.json је манифест Node.js пројекта који садржи метаподатке потребне за управљање зависностима, изградњу и покретање апликације.

Главна поља и њихова улога:

  1. name: Име пројекта.
  2. version: Текуща верзија пројекта.
  3. description: Кратак опис пројекта.
  4. keywords: Масај од кључних речи за опис пројекта.
  5. homepage: URL почетне странице пројекта.
  6. bugs: Објекат са информацијама о баг тракеру.
  7. license: Тип лиценце пројекта.
  8. author: Информације о аутору пројекта.
  9. contributors: Листа доприносиоца.
  10. files: Масај фајлова укључених приликом објаве пакета.
  11. main: Тачка уласка у апликацију (основни фајл).
  12. browser: Тачка уласка за клијентски део (ако је применљиво).
  13. bin: Команде које треба да буду доступне глобално приликом инсталације пакета.
  14. man: Путеви до man страница.
  15. directories: Објекат са путевима до директоријума пројекта (нпр. lib, bin, man, doc).
  16. repository: Објекат са информацијама о репозиторијуму изворног кода.
  17. scripts: Објекат који садржи скрипте које се могу извршавати помоћу npm.
  18. config: Објекат за подешавања, специфична за скрипте.
  19. dependencies: Објекат са зависностима потребним за рад пројекта у продукцији.
  20. devDependencies: Објекат са зависностима потребним само за развој и тестирање.
  21. peerDependencies: Зависности од којих и корисници пакета треба да зависе.
  22. bundledDependencies: Масај имена зависности које треба да буду упаковане са пакетом.
  23. optionalDependencies: Зависности које могу бити инсталиране, али њихово одсуство неће изазвати грешку приликом инсталације.
  24. engines: Објекат који указује на верзије Node.js и npm подржане од стране пројекта.
  25. os: Масај оперативних система на којима ради пројекат.
  26. cpu: Масај архитектура CPU на којима ради пројекат.
  27. preferGlobal: Булева вредност која указује да ли пакет треба да буде инсталиран глобално.
  28. private: Булева вредност која указује да ли је пакет приватан и да ли треба да буде објављен на npm.
  29. publishConfig: Подешавања за објављивање пакета на npm.
{
  "name": "my-node-app", // Име пројекта
  "version": "1.0.0", // Верзија пројекта
  "description": "Једноставна Node.js апликација",
  "main": "index.js", // Тачка уласка
  "scripts": {
    "start": "node index.js", // Скрипта за покретање
    "test": "echo \"Грешка: није наведено тестирање\" && exit 1" // Скрипта за тестове
  },
  "keywords": [
    "node",
    "пример"
  ],
  "author": "Ваше име",
  "license": "ISC",
  "dependencies": { // Зависности за продукцију
    "express": "^4.18.2"
  },
  "devDependencies": { // Зависности за развој
    "nodemon": "^2.0.20"
  }
}

package.json игра кључну улогу у управљању зависностима (инсталација, ажурирање, уклањање), дефинисању скрипти за аутоматизацију задатака (покретање, тестирање, изградња), пружању метаподатака о пројекту за npm и друге алате, као и у обезбеђивању репродукбилности изградње пројекта.