Открыть сервис

package.json

package.json — это файл в формате JSON, который является центральным элементом управления проектами на платформе Node.js. Он содержит метаданные о проекте, список его зависимостей, сценарии для автоматизации задач, а также конфигурационные параметры для инструментов сборки и тестирования. Файл package.json обязателен для любого проекта, использующего менеджер пакетов npm (Node Package Manager) или его альтернативы (yarn, pnpm), и служит основным манифестом, описывающим проект и его окружение.

История и происхождение

Файл package.json был введён вместе с появлением менеджера пакетов npm в 2010 году. Изначально он использовался для описания модулей, публикуемых в реестре npm, но со временем стал стандартом де-факто для всех JavaScript-проектов, включая клиентские приложения на React, Vue.js или Angular, а также серверные решения на Node.js.

Идея файла-манифеста восходит к более ранним системам управления пакетами, таким как package.json в CommonJS и composer.json в PHP. Разработчики npm — Айзек Шлютер (Isaac Schlueter) и другие — адаптировали этот подход под экосистему JavaScript. С выходом npm версии 1.0 в 2011 году формат package.json был стандартизирован и с тех пор остаётся стабильным, хотя его поля расширялись с появлением новых потребностей (например, поддержка Workspaces в npm v7).

Структура и основные поля

Файл package.json состоит из набора пар «ключ-значение». Обязательными полями являются name и version. Остальные поля опциональны, но их использование рекомендуется для корректной работы инструментов.

Обязательные поля

Метаданные проекта

Управление зависимостями

Сценарии (scripts)

Конфигурация

Рабочие пространства (Workspaces)

Поля для публикации

Семантическое версионирование (SemVer)

Версии зависимостей в package.json обычно задаются с использованием диапазонов SemVer. Основные операторы:

При установке пакетов npm создаёт файл package-lock.json (или yarn.lock), который фиксирует точные версии всех зависимостей, обеспечивая воспроизводимость сборки.

Создание и управление

Файл package.json можно создать вручную или с помощью команды npm init. Интерактивный режим (npm init) задаёт вопросы о названии, версии, описании и других полях. Флаг -y (npm init -y) создаёт файл с значениями по умолчанию.

Для добавления зависимостей используются команды:

Удаление зависимостей: npm uninstall <package>.

Применение

package.json используется во всех проектах на JavaScript/TypeScript, где применяется менеджер пакетов. Его функции включают:

Пример типового файла

``json { "name": "my-app", "version": "1.0.0", "description": "Пример веб-приложения на Node.js", "main": "index.js", "scripts": { "start": "node index.js", "test": "jest", "build": "webpack --mode production" }, "dependencies": { "express": "^4.18.0", "mongoose": "^6.0.0" }, "devDependencies": { "jest": "^29.0.0", "webpack": "^5.0.0" }, "author": "Иван Иванов ivan@example.com", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/ivanov/my-app.git"; } } ``

Интересные факты

Критика и ограничения

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →