Я только что сгенерировал новый файл блокировки npm, package-lock.json, как часть моего типичного рабочего процесса. Но я заметил, что на этот раз все хэши целостности были изменены с sha1 на sha512. Что здесь происходит?
Почему пакет-lock.json изменил хэш целостности с sha1 на sha512?
Ответ 1
Из того, что я вижу, npm изменил контрольную сумму целостности от sha1 до sha512.
Если ваши изменения git идут от sha1 до sha512, вы должны сделать это обновление один раз, и после этого это будет хорошо.
Если кто-то другой работает с кодовой базой и видит git с sha512 до sha1 (это проблема, с которой я столкнулся), вы можете исправить ее, выполнив следующее:
Отменить изменения в git для package-lock.json
npm i -g npm
rm -rf node_modules/
npm i
Это обновит npm и переустановит все ваши пакеты, чтобы появилась новая контрольная сумма (sha512).
Ответ 2
Основываясь на том, что ответил Дэйв. Исправление, которое я нашел, состояло в следующем:
npm i -g npm
cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i
Мы сделали это для всех наших разработчиков одновременно, и это остановило проблему sha-512 vs sha-1, которая вызывала разочарование в конфликтах слияния.
Ответ 3
См. Также https://github.com/npm/npm/issues/17749, в котором, хотя и утверждается, что проблема "исправлена", это не так. Удаление node_modules
- это обходной путь.
Там могут быть отношения с операционными системами. Мы достигли этого прямо сейчас с разработчиками на платформах Linux и Windows.
Ответ 4
Далее, основываясь на предыдущих комментариях и предложениях, мне нужно было стереть существующую папку node_modules, кеш, а затем извлечь файл sha512 package-lock.json из git (который был зафиксирован с другого компьютера), и, наконец, сделать npm, я, Что-то вроде этого:
npm i -g
npm rm -rf node_modules/
npm cache clear --force
git reset --hard
npm i
После этого package-lock.json использовал sha512 и другие изменения стабилизировались.