Кратко
package.json — конфигурационный файл проекта. Он содержит: имя проекта, версию, зависимости (dependencies), devDependencies, скрипты (scripts), и настройки. Это «паспорт» вашего проекта.
Подробно
Структура package.json:
{ "name": "my-project", "version": "1.0.0", "description": "Описание проекта", "main": "index.js", "scripts": { "start": "vite", "build": "vite build", "test": "jest" }, "dependencies": { "react": "^18.2.0" }, "devDependencies": { "vite": "^5.0.0" } }
Основные поля:
- name — имя проекта (обязательное)
- version — версия в формате SemVer (major.minor.patch)
- scripts — команды для запуска
- dependencies — библиотеки для production
- devDependencies — библиотеки для разработки
Версионирование (SemVer): ^1.2.3 — любая версия >= 1.2.3 и < 2.0.0 ~1.2.3 — любая версия >= 1.2.3 и < 1.3.0 1.2.3 — только точная версия
Скрипты: "scripts": { "start": "vite", "dev": "vite --port 3000", "build": "vite build", "preview": "vite preview" }
Запуск: npm run start, npm run dev
Сокращения: npm start — работает без run npm test — работает без run npm run build — нужен run для кастомных
Ментальная модель
package.json — как паспорт проекта. В нём написано: кто вы (name), какая у вас версия (version), с кем вы дружите (dependencies), и что вы умеете (scripts).
Примеры
**Самый простой:**
// package.json — минимальная версия
{
"name": "my-app",
"version": "1.0.0",
"scripts": {
"start": "echo Hello"
}
}
// Запуск: npm startМинимальный package.json с одним скриптом.
**Простой:**
// package.json с зависимостями
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"vite": "^6.0.0"
}
}
// Запуск: npm run dev (инструмент сборки Vite — следующий урок T6)Типичный package.json на основе Vite: команды-скрипты и зависимости для разработки.
**Реальный пример:**
// Проверка зависимостей
// В терминале:
npm ls # Дерево зависимостей
npm outdated # Устаревшие пакеты
npm install # Установить из package.json
npm install lodash@4.17 # Конкретная версияУправление версиями и проверка зависимостей. В реальных проектах встречаются и другие стеки (React, Next.js, TypeScript) — это отдельные технологии, которые в этом курсе не разбираются.
Частые ошибки
**Неправильно:** Вручную менять version при каждом обновлении
**Почему:** npm version major/minor/patch делает это автоматически и создаёт коммит.
**Правильно:** Используйте npm version patch/minor/major.
**Неправильно:** Использовать * для версий
**Почему:** "lodash": "*" — установит последнюю версию, которая может сломать код.
**Правильно:** Используйте ^ или ~ для безопасного обновления.
**Неправильно:** Не коммитить package-lock.json
**Почему:** Без lock-файла версии могут отличаться между разработчиками.
**Правильно:** Всегда коммитите package-lock.json.
Важно запомнить
- package.json — конфигурация проекта
- dependencies — для production, devDependencies — для разработки
- scripts — команды для запуска
- ^version — обновлять minor/patch
- package-lock.json — коммитить всегда
Связь
Назад: Вы знаете npm (T4). package.json — это конфигурационный файл npm.
Вперёд: Следующий урок (T6) — Vite: dev-сервер и инструмент сборки.