Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: package, json, lock

Чем отличается package.json от package-lock.json?

Вопрос проверяет понимание управления зависимостями и различий между декларацией зависимостей и их фактической фиксацией.

Короткий ответ

package.json описывает зависимости и допустимые диапазоны их версий. package-lock.json фиксирует конкретные версии установленных пакетов и их дерево зависимостей. package.json нужен для описания проекта, а package-lock.json — для воспроизводимых установок. Они дополняют друг друга. Вместе они обеспечивают стабильность окружения.

Длинный ответ

В JavaScript-проектах используется два файла для работы с зависимостями, каждый из которых решает свою задачу.

Назначение package.json

package.json описывает требования проекта.

Он содержит:

  • список зависимостей

  • версии или диапазоны версий

  • скрипты и метаданные проекта

Пример версии зависимости:

"react": "^18.2.0"

Это означает, что допустимы обновления в рамках мажорной версии.

Назначение package-lock.json

package-lock.json фиксирует результат установки зависимостей.

Особенности:

  • содержит точные версии пакетов

  • описывает полное дерево зависимостей

  • автоматически генерируется npm

Этот файл гарантирует, что:

  • все разработчики получают одинаковые версии пакетов

  • сборка в CI совпадает с локальной средой

Ключевое различие

package.json отвечает на вопрос:

  • какие зависимости нужны проекту

package-lock.json отвечает на вопрос:

  • какие версии реально установлены

Вывод

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#package

#json

#lock

Подпишись на React Developer в телеграм