Junior
Šta je fajl package.json u Node.js i koju ulogu ima u projektu?
sobes.tech АИ
Одговор од АИ
package.json је манифест Node.js пројекта који садржи метаподатке потребне за управљање зависностима, изградњу и покретање апликације.
Главна поља и њихова улога:
name: Име пројекта.version: Текуща верзија пројекта.description: Кратак опис пројекта.keywords: Масај од кључних речи за опис пројекта.homepage: URL почетне странице пројекта.bugs: Објекат са информацијама о баг тракеру.license: Тип лиценце пројекта.author: Информације о аутору пројекта.contributors: Листа доприносиоца.files: Масај фајлова укључених приликом објаве пакета.main: Тачка уласка у апликацију (основни фајл).browser: Тачка уласка за клијентски део (ако је применљиво).bin: Команде које треба да буду доступне глобално приликом инсталације пакета.man: Путеви до man страница.directories: Објекат са путевима до директоријума пројекта (нпр.lib,bin,man,doc).repository: Објекат са информацијама о репозиторијуму изворног кода.scripts: Објекат који садржи скрипте које се могу извршавати помоћуnpm.config: Објекат за подешавања, специфична за скрипте.dependencies: Објекат са зависностима потребним за рад пројекта у продукцији.devDependencies: Објекат са зависностима потребним само за развој и тестирање.peerDependencies: Зависности од којих и корисници пакета треба да зависе.bundledDependencies: Масај имена зависности које треба да буду упаковане са пакетом.optionalDependencies: Зависности које могу бити инсталиране, али њихово одсуство неће изазвати грешку приликом инсталације.engines: Објекат који указује на верзије Node.js и npm подржане од стране пројекта.os: Масај оперативних система на којима ради пројекат.cpu: Масај архитектура CPU на којима ради пројекат.preferGlobal: Булева вредност која указује да ли пакет треба да буде инсталиран глобално.private: Булева вредност која указује да ли је пакет приватан и да ли треба да буде објављен на npm.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 и друге алате, као и у обезбеђивању репродукбилности изградње пројекта.