Я только что создал новый файл блокировки npm, package-lock.json, как часть своего типичного рабочего процесса. Но я заметил, что на этот раз все хэши целостности были изменены с sha1 на sha512. Что здесь происходит?
"chalk": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
[…]
}
Ответы:
Насколько я могу судить, npm изменил контрольную сумму целостности с sha1 на sha512.
Если ваши изменения git переходят с sha1 на sha512, вы должны сделать это обновление один раз, и после этого все будет хорошо.
Если кто-то другой работает с кодовой базой и видит изменение git с sha512 на sha1 (это проблема, с которой я столкнулся), вы можете исправить это, выполнив следующее:
Отменить изменения в git для package-lock.json
Это обновит npm и переустановит все ваши пакеты, чтобы появилась новая контрольная сумма (sha512).
источник
node_modules
папки мнеnpm cache clear --force
тоже понадобилось .Основываясь на том, что ответил Дэйв. Исправление, которое я нашел, заключалось в следующем:
Мы сделали это для всех наших разработчиков одновременно, и это остановило проблему sha-512 и sha-1, которая вызывала неприятные конфликты слияния.
источник
См. Также https://github.com/npm/npm/issues/17749, где утверждается, что проблема «исправлена», но это не так. Удаление
node_modules
- это обходной путь.Может быть связь с операционными системами. Мы достигаем этого прямо сейчас с разработчиками платформ Linux и Windows.
источник
Как @Daniel Cumings мне также пришлось удалить,
package-lock.json
чтобы избавиться от хэшей sha1. Вот команды Windows CLI для справки, которые делают то же самое, что и сценарий Дэниела:источник
Я работаю в большой команде. Заставить каждого разработчика принудительно очистить
npm
кеш сложно и ненадежно. Кроме того, это помогает не каждый раз. Итак, для тех, кто все еще сталкивается с этой проблемой npm (как и я), и ничто другое не помогает - попробуйте этот инструмент на основе git, который я создал недавно: https://github.com/kopach/lockfix . Он отменяетsha512 -> sha1
изменения целостности файлов блокировки npm. Если вы добавите это в свойpostshrinkwrap
сценарийpackage.json
- вы должны в конечном итоге установить все свойства целостностиsha512
и согласовать файл блокировки.источник
Основываясь на предыдущих комментариях и предложениях, мне нужно было стереть существующую папку node_modules, кеш, а затем взять файл sha512 package-lock.json из git (который был зафиксирован с другого компьютера) и, наконец, выполнить npm i , Что-то вроде этого:
После этого package-lock.json использовал sha512 и другие изменения стабилизировались.
источник