Github memberi tahu saya bahwa dependensi dalam file package-lock.json saya rentan dan ketinggalan zaman. Masalahnya adalah jika saya melakukan npm install
atau npm update
, tak satu pun dari mereka memperbarui ketergantungan di file package-lock.json.
Saya telah melakukan banyak googling tentang ini, serta menghapus file dan selesai npm install
.
Jika ada yang bisa membantu menyelesaikan ini, saya akan sangat menghargainya. Paket yang dimaksud adalah Hoek, yang sebenarnya tidak saya miliki di file package.json saya.
Terima kasih banyak sebelumnya.
node.js
npm
package.json
package-lock.json
Raph117
sumber
sumber
Jawaban:
Kedengarannya seperti Hoek adalah dependensi dari salah satu dependensi Anda (jadi, paket yang Anda miliki di package.json membutuhkannya dari package.json itu sendiri).
Anda sudah mencoba menghapus / menginstal ulang dan memperbarui dependensi proyek Anda tetapi tidak berhasil, jadi tampaknya dependensi paket yang dipermasalahkan memiliki versi eksplisit atau maks yang ditentukan.
Tanpa melihat package.json untuk setiap dependensi Anda, akan sulit untuk memberi saran lebih lanjut tentang cara memaksa pembaruan.
Edit: Untuk membantu Anda mengidentifikasi paket mana yang menggunakan dependensi mana, Anda dapat menggunakan
ls
perintah NPM : https://docs.npmjs.com/cli/lsMisalnya, untuk melihat paket mana yang menggunakan Hoek:
npm ls hoek
Edit 2: Seperti yang ditunjukkan Ulysse BN dengan benar, jika Anda memiliki NPM versi 6 atau yang lebih baru, Anda dapat menggunakan
npm audit fix
untuk meminta NPM mencoba memperbaiki kerentanan untuk Anda.Edit 3: Mereka yang membaca ini juga harus memeriksa jawaban JBallin di bawah ini. Ini memperluas informasi yang saya berikan di sini, dan (menurut saya) merupakan jawaban yang lebih terstruktur yang menjawab pertanyaan OP dengan lebih baik. Namun - jika Anda ingin perbaikan cepat - jawaban ini sudah cukup.
sumber
package.json
yang bergantung pada versi Growl yang spesifik (rentan). Jawaban Anda ada di jalur yang benar dan Anda mungkin bisa berhasil jika Anda dapat membagikan perintah yang akan menunjukkan paket manapackage.json
yang bergantung pada paket rentan yang munculpackage-lock.json
.TLDR: Perbarui paket induk menggunakan
npm i $PARENT_PKG_NAME
.Catatan
Saat memperbarui dependensi, Anda harus meninjau CHANGELOG untuk setiap perubahan yang mengganggu.
Diagnosa
npm audit
akan mengungkapkan paket yang rentan (perhatikan bahwa Anda memerlukan file package-lock.json untuk ini, jadi Anda harus menjalankannyanpm i
), serta paket yang menjadi dependensinya (jika ada). Perhatikan bahwa Anda juga dapat menggunakannpm ls $CHILD_PKG_NAME
untuk melihat dependensi induknya.Percobaan Perbaikan Cepat
npm audit fix
dannpm audit fix --force
patut dicoba, tetapi terkadang perbaikan perlu dilakukan secara manual (lihat di bawah).Perbaikan Manual
Kemungkinan besar paket induk telah memperbaiki dependensinya (Anda dapat memverifikasi ini dengan membuka GitHub mereka dan meninjau komit terbaru - atau hanya melihat apakah ini memperbaikinya), jadi Anda dapat menjalankannya
npm i $PARENT_PKG_NAME @$NEW_VERSION
dan itu akan memperbarui kunci paket Anda .json.Jika orang tua belum memperbaiki kerentanannya
Jika pengelola tampaknya tidak responsif, Anda dapat mempertimbangkan untuk menggunakan paket alternatif yang menyelesaikan hal yang sama atau membagi paket dan memperbarui kerentanannya sendiri.
Verifikasi Perbaikan
Anda sekarang dapat memverifikasi bahwa itu berfungsi dengan menjalankan
npm audit
dan memastikan bahwa tidak ada kerentanan yang muncul. Komit perubahan Anda, dorong ke GitHub, segarkan pemberitahuan / peringatan Anda dan itu akan hilang!sumber
Jika Anda memiliki npm @ 6 atau yang lebih baru, Anda dapat menggunakannya
npm audit fix
untuk masalah keamanan Anda.sumber
Menggunakan:
npm akan menginstal versi terbaru hoek dan package.lock.json Anda akan diperbarui.
sumber
Saya mengalami masalah ini dan menemukan bahwa itu karena server tempat saya menjalankan npm memiliki versi lama npm di atasnya- package-lock.json hanya didukung oleh versi yang lebih baru.
sumber
apakah Anda mencoba ini: buka root proyek Anda, hapus
package-lock.json
file,node_modules
dan.cache
folder, lalunpm install
.sumber
Untuk memeriksa paket npm yang rentan, cukup gunakan perintah berikut:
Untuk memperbaiki paket npm yang rentan, cukup gunakan perintah berikut yang juga akan memperbaiki package-lock.json:
sumber
Edit
package-lock.json
secara manual dan perbarui versi paket yang rentan ke yang diperbaiki dan kemudian gunakanItu akan menginstal paket sesuai
package-lock.json
dengan mengabaikannyapackage.json
terlebih dahulu. Kemudian gunakansekali lagi, untuk memastikan apakah itu dilakukan dengan benar. Jika tidak membantu, gunakan solusi lain yang diberikan.
Informasi lebih lanjut di sini:
https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable
atau di sini: https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
sumber
Setelah menginstal dependensi baru, jalankan perintah berikut untuk memperbarui file package-lock.json:
sumber