npm install переопределяет существующий package-lock.json и прерывает модальное - PullRequest
0 голосов
/ 08 ноября 2019

Я вижу странное поведение с package-lock.json. Как только я удаляю node_modules и package-lock.json и затем собираю их, мое приложение работает как положено. Когда я делаю npm install снова с только что созданным package-lock.json существующим, файл полностью изменяется, удаляя много пакетов из дерева. Когда я сейчас запускаю сервер, некоторые Modal (из react-bootstrap) компоненты не работают должным образом. Я не понимаю, почему этот файл должен измениться и в итоге установить другую версию зависимостей, которая нарушает код. Я делаю что-то не так в отношении package-lock.json?

Каждый раз, когда я удаляю оба node_modules и этот файл и сборку, у меня нет проблем. Только когда этот файл уже присутствует и у меня появляется npm install, у меня возникают проблемы.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

npm install изменяет packages.json и package-lock.json, поскольку пытается установить более новые версии зависимостей. Если вы не хотите этого и хотите использовать package-lock.json и оставить packages.json как есть, попробуйте npm ci.

0 голосов
/ 08 ноября 2019

npm install создает новый package-lock.json всякий раз, когда вы обновляете node_modules, т.е. когда вы устанавливаете новый модуль / пакет. Таким образом, переопределение ранее существовавшего package-lock.json является ожидаемым поведением.

Что касается взлома Modal, то, скорее всего, из-за конфликта версий. Если вы публикуете ошибку 'break', мы можем лучше определить, что ее вызывает, но обычно это происходит, когда вашим пакетам требуется определенная версия другой зависимости.

Возможное решение - удалить node_modules и исходный файл package-lock.json, а затем запустить установку. Вы также можете попробовать npm ci.

РЕДАКТИРОВАТЬ

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

...