delphinpro
@delphinpro
frontend developer

Файл package-lock.json: быть или не быть?

Назначение этого файла предельно ясно — зафиксировать используемые версии пакетов, дабы можно было развернуть точную копию node_modules.
И я как положено, сохраняю этот файлик в репе, вместе с исходниками.

Но уже не в первый раз наступаю на грабли.
Сегодня открыл старый проект. Он не очень старый, месяца три с последней правки прошло, я же и правил на своей тачке. Клонирую, значит, код с репы, запускаю npm install, все завртелось, скачивается, собирается, ребилдится sass, в итоге все проходит в штатном режиме, без ошибок.
Запускаю dev сервер npm start, получаю ошибку и вылет из таска (увы, не помню, какую именно). На всякий случай стираю node_modules, повторяю всё и снова ошибка.
Ладно. Удаляю node_modules, удаляю package-lock.json, ставлю, запускаю - всё работает.

Может кто знает причины такого поведения?
А вы сами lock файл храните в репе?
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 1
sfi0zy
@sfi0zy
Creative frontend developer
Может кто знает причины такого поведения?

Сталкивался с такой же проблемой и сложилось такое впечатление (возможно ошибочное), что npm втихую кеширует сами lock-файлы и потом, если видит наличие такого файла в старом месте, то для установки зависимостей использует его закешированную версию, а уже во время запуска скриптов "обнаруживает", что версии всего не совпадают и падает со странными ошибками, которые совершенно не гуглятся. Такие ошибки не возникали на девственно-свежем ноутбуке и появились на нем спустя какое-то время. А потом я жестко почистил руками весь кеш npm и все опять заработало нормально. Может это совпадение, но уж очень подозрительное...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект