← Назад к вопросам

Что такое Package.json?

2.0 Middle🔥 112 комментариев
#Node.js и JavaScript

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Package.json: манифест Node.js проекта

Что такое Package.json

Package.json — это файл конфигурации Node.js проекта, который описывает информацию о проекте, зависимости, скрипты для запуска и метаданные. Это JSON файл в корне проекта, обязателен для любого Node.js приложения.

Основные поля

name — имя пакета version — версия проекта (семантическая: MAJOR.MINOR.PATCH) main — файл входа приложения scripts — команды (npm run dev, npm test, npm start) dependencies — пакеты нужные для production devDependencies — пакеты только для разработки engines — требуемые версии Node.js

Зависимости: dependencies vs devDependencies

Dependencies нужны для запуска приложения (express, postgresql, redis, axios). DevDependencies нужны только при разработке (typescript, jest, eslint, prettier). При развёртывании на production обычно не устанавливают devDependencies чтобы экономить место.

Версионирование пакетов

^4.18.0 означает совместимо с 4.x.x до 5.0.0 ~8.8.0 означает совместимо с 8.8.x до 8.9.0 4.6.0 означает точно эта версия

  • означает любая версия (опасно)

Package-lock.json

Автоматически генерируется npm. Хранит ТОЧНЫЕ версии всех установленных пакетов. Это гарантирует что все разработчики и сервер используют одинаковые версии зависимостей. Никогда не редактируй его вручную.

Основные команды npm

npm install — установить все зависимости npm run dev — запустить dev скрипт npm test — запустить тесты npm run build — собрать проект npm start — запустить production версию npm install express — установить новый пакет npm uninstall express — удалить пакет

Типичный package.json для production

Содержит скрипты для разработки (dev, build, test, lint, deploy). Dependencies включает express, postgres драйвер, redis клиент. DevDependencies включает typescript, jest для тестов, eslint для проверки кода, prettier для форматирования.

Важные правила

Никогда не закоммитивай node_modules в git. Закоммити только package.json и package-lock.json. Другие разработчики выполнят npm install и получат нужные пакеты.

Николи не редактируй package-lock.json вручную. Используй команды npm install/update.

Используй каретку (^) для версионирования чтобы получать патчи и минор обновления автоматически, но не сломающие изменения.

Семантическая версионировка

MAJOR.MINOR.PATCH MAJOR: несовместимые изменения (2.0.0) MINOR: новые фичи, совместимо (1.1.0) PATCH: баг фиксы (1.0.1)

Заключение

Package.json это сердце Node.js проекта. Без него приложение не может работать. Это как pom.xml в Java, setup.py в Python, Cargo.toml в Rust. Он описывает что такое ваше приложение, что ему нужно, как его запустить и развернуть.

Что такое Package.json? | PrepBro