Saya baru saja membuat lockfile npm baru, package-lock.json, sebagai bagian dari alur kerja khas saya. Tapi saya perhatikan bahwa kali ini semua hash integritas telah diubah dari sha1 menjadi sha512. Apa yang terjadi disini?
"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==",
[…]
}
Jawaban:
Dari apa yang saya lihat, npm mengubah checksum integritas dari sha1 menjadi sha512.
Jika perubahan git Anda beralih dari sha1 ke sha512, Anda harus melakukan pembaruan itu sekali dan setelah itu akan bagus.
Jika orang lain bekerja dengan basis kode dan melihat perubahan git dari sha512 ke sha1 (yang merupakan masalah yang saya alami), Anda dapat memperbaikinya dengan menjalankan perintah berikut:
Buang perubahan di git untuk package-lock.json
Ini akan memperbarui npm dan menginstal ulang semua paket Anda sehingga checksum baru (sha512) hadir.
sumber
node_modules
folder, sayanpm cache clear --force
juga perlu .Membangun dari apa yang dijawab Dave. Perbaikan yang saya temukan adalah melakukan hal berikut:
Kami melakukan ini untuk semua pengembang kami pada saat yang sama dan ini menghentikan masalah sha-512 vs sha-1 yang menyebabkan konflik penggabungan yang membuat frustrasi.
sumber
Lihat juga https://github.com/npm/npm/issues/17749 yang meskipun mengklaim bahwa masalahnya sudah 'diperbaiki', sebenarnya tidak. Menghapus
node_modules
adalah solusi.Mungkin ada hubungan dengan sistem operasi. Kami sedang melakukan ini sekarang dengan pengembang di platform Linux dan Windows.
sumber
Sebagai @Daniel Cumings, saya juga harus menghapus
package-lock.json
untuk menyingkirkan hash sha1. Berikut perintah Windows CLI untuk referensi, yang berfungsi sama dengan skrip Daniel:sumber
Saya bekerja di tim besar. Memaksa setiap pengembang untuk memaksa membersihkan
npm
cache itu sulit dan tidak dapat diandalkan. Juga, ini tidak membantu setiap saat. Jadi, bagi siapa saja yang masih menghadapi masalah npm ini (sama seperti saya) dan tidak ada yang membantu - coba alat berbasis git yang saya buat baru-baru ini: https://github.com/kopach/lockfix . Inisha512 -> sha1
mengembalikan perubahan integritas file kunci npm. Jika Anda menambahkan ini kepostshrinkwrap
skrippackage.json
- Anda pada akhirnya akan mendapatkan semua properti integritas yang disetelsha512
dan memiliki file kunci yang konsisten.sumber
Lebih lanjut membangun komentar dan saran sebelumnya, bagi saya, saya perlu menghapus folder node_modules yang ada, cache, dan kemudian ambil file sha512 package-lock.json dari git (yang dilakukan dari komputer lain), dan akhirnya melakukan npm i . Sesuatu seperti ini:
Setelah paket-lock.json menggunakan sha512 dan perubahan lainnya distabilkan.
sumber