Пакеты и зависимости
Никто не пишет целое приложение с нуля. Сложные, распространённые задачи — форматирование дат, обработка платежей, отрисовка календаря — уже решены и упакованы другими людьми. Пакет — это переиспользуемый кусок кода, который вы подключаете в свой проект вместо того, чтобы писать его самостоятельно. Зависимости вашего проекта — это список пакетов, на которые он опирается.
В мире JavaScript инструмент, который этим управляет, — это npm (Node Package Manager, менеджер пакетов Node). Учётом занимаются два файла:
package.json— читаемый человеком список того, что нужно вашему проекту, плюс команды для его запуска. Его редактируете вы (или ИИ).- lockfile (
package-lock.jsonили подобный) — точная, сгенерированная машиной запись каждого пакета и его конкретной версии, чтобы приложение собиралось одинаково на вашей машине, на машине коллеги и на сервере. Его вы не редактируете вручную; пусть им управляет инструмент.
{
"name": "my-app",
"scripts": {
"dev": "next dev",
"build": "next build"
},
"dependencies": {
"next": "16.0.0",
"react": "19.0.0"
}
}
Зачем это знать? Когда ИИ говорит «давайте добавим библиотеку для этого», он редактирует package.json, и вы доверяете чужому коду — меньшее число хорошо известных зависимостей безопаснее, чем куча малоизвестных. А когда сборка загадочно ломается, несовпадающая зависимость — обычный подозреваемый, и «удалить и переустановить пакеты» — это реальное, частое решение.