it-roy-ru.com

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

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

 enter image description here

67
Matt

Из того, что я вижу, 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).

51
Dave

Основываясь на том, что ответил Дейв. Исправление, которое я нашел, заключалось в следующем:

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, которая вызывала неприятные конфликты слияния.

13
Daniel Cumings

Смотрите также https://github.com/npm/npm/issues/17749 , хотя и утверждает, что проблема «исправлена», но это не так. Удаление node_modules - это обходной путь.

Там могут быть отношения с операционными системами. Мы достигли этого прямо сейчас с разработчиками на платформах Linux и Windows.

5
mrblewog

далее, основываясь на предыдущих комментариях и предложениях, мне нужно было стереть существующую папку 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 и другие изменения стабилизировались.

0
Mike Benna