Setelah memperbarui NPM saya ke versi terbaru (dari 3.X ke 5.2.0) dan menjalankan npm install
proyek yang ada, saya mendapatkan package-lock.json
file yang dibuat secara otomatis .
Saya tahu package-lock.json
memberi saya pohon ketergantungan yang tepat sebagai lawan package.json
.
Dari info itu saja, sepertinya package.json
sudah mubazir dan tidak dibutuhkan lagi.
Apakah keduanya diperlukan agar NPM bekerja?
Apakah aman atau mungkin hanya menggunakan package-lock.json
file tersebut?
Dokumen di package-lock.json ( doc1 , doc2 ) tidak menyebutkan apapun tentang itu.
Edit :
Setelah memikirkannya lagi, saya sampai pada kesimpulan bahwa jika seseorang ingin menggunakan proyek Anda dengan versi NPM yang lebih lama (sebelum 5.x), ia masih akan menginstal semua dependensi, tetapi dengan versi yang kurang akurat (versi patch)
sumber
Jawaban:
Apakah Anda membutuhkan keduanya
package-lock.json
danpackage.json
? Tidak .Apakah Anda membutuhkan
package.json
? Iya .Bisakah Anda memiliki proyek hanya dengan
package-lock.json
? Tidak .The
package.json
digunakan untuk lebih dari dependensi - seperti mendefinisikan sifat proyek, deskripsi, penulis & lisensi informasi, script, dllpackage-lock.json
semata-mata digunakan untuk dependensi kunci ke nomor versi tertentu.sumber
package-lock.json
: mencatat versi persis dari setiap paket yang diinstal yang memungkinkan Anda untuk menginstalnya kembali. Penginstalan di masa mendatang akan dapat membangun pohon dependensi yang identik.package.json
: mencatat versi minimum yang Anda perlukan aplikasi. Jika Anda memperbarui versi dari paket tertentu, perubahan tidak akan terlihat di sini.sumber
package.json
mencatat versi minimum yang dibutuhkan oleh aplikasi dan package-lock.json mencatat versi yang tepat dari setiap paket yang diinstal, maka saya mengalami situasi yang aneh di mana modul disetel pada versi 0.112.1 dalam paket .json dan 0.110.0 di package-lock.json ...Jika pertanyaan Anda adalah apakah file kunci harus diserahkan ke kontrol sumber Anda - seharusnya. Ini akan diabaikan dalam keadaan tertentu.
Saya menemukan itu membengkak permintaan tarik dan melakukan sejarah, jadi jika Anda melihatnya berubah, lakukan komit terpisah untuk itu.
sumber
package-lock.json
Sepertinya versi yang lebih panjangpackage.json
, jadi apakah aman atau mungkin menggunakan hanya file kunci.package-lock.json
bawah kontrol versi.Penjelasan yang lebih akurat dan rinci tentang alasan di balik menyimpan package-lock.json dapat ditemukan di sini
sumber