Подтвердить что ты не робот

Почему пакет-lock.json изменил хэш целостности с sha1 на sha512?

Я только что сгенерировал новый файл блокировки npm, package-lock.json, как часть моего типичного рабочего процесса. Но я заметил, что на этот раз все хэши целостности были изменены с sha1 на sha512. Что здесь происходит?

enter image description here

4b9b3361

Ответ 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 и другие изменения стабилизировались.