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

После запуска скрипта установки в директории проекта остается только файл package-lock.json, потому что в npm (Node Package Manager) используется два файла для управления зависимостями в проекте: package.json и package-lock.json.

Файл package.json является основным файлом конфигурации проекта. Он содержит информацию о самом проекте, включая его имя, версию, автора, зависимости и другую мета-информацию. В этом файле определены зависимости проекта, которые можно установить с помощью команды npm install или npm i.

Файл package-lock.json был введен в npm 5.0.0 и содержит полную информацию о точных версиях всех зависимостей проекта и их дереве зависимостей. Он создается и обновляется автоматически в процессе установки новых пакетов или обновления уже установленных. Данный файл гарантирует, что все разработчики, работающие над проектом, будут использовать одни и те же версии зависимостей, а также при повторной установке пакетов будет использована точно такая же версия, что и в предыдущий раз. Это обеспечивает последовательность и воспроизводимость разработки в групповом проекте и при развертывании на сервере.

При запуске скрипта установки, npm смотрит на package.json, определяет список зависимостей и их версии, а затем анализирует package-lock.json и устанавливает соответствующие зависимости в точно заданных версиях. После установки этих пакетов, package-lock.json обновляется, чтобы отразить точные установленные версии пакетов.

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