Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 9038|Jawab: 0

Apa package-lock.json yang dihasilkan oleh npm install?

[Salin tautan]
Diposting pada 13/12/2017 13.17.45 | | |
Untuk modifikasi npm node_modules pohon atau package.json tindakan apa pun, package-lock.json akan dibuat secara otomatis. Ini menjelaskan pohon yang tepat yang dihasilkan sehingga penginstalan berikutnya dapat menghasilkan pohon yang sama, terlepas dari pembaruan dependensi perantara.

File ini dimaksudkan untuk dikirimkan ke repositori kode sumber dan tersedia untuk berbagai tujuan:

Menjelaskan representasi tunggal dari pohon dependensi untuk menjamin bahwa rekan satu tim, penyebaran, dan integrasi berkelanjutan memastikan bahwa dependensi yang sama persis diinstal.

Berikan alat kepada pengguna untuk "maju" ke status node_modules sebelumnya tanpa harus melakukan commit direktori itu sendiri.

Memfasilitasi visibilitas perubahan pohon yang lebih besar melalui perbedaan kontrol sumber yang dapat dibaca.

Dan optimalkan proses instalasi dengan mengizinkan npm melewati resolusi metadata duplikat dari paket yang diinstal sebelumnya.

Detail kunci tentang package-lock.json adalah bahwa itu tidak dapat dirilis dan akan diabaikan jika ditemukan di mana saja di luar paket tingkat atas. Ini berbagi format dengan npm-shrinkwrap.json, pada dasarnya adalah file yang sama tetapi memungkinkan penerbitan. Ini tidak disarankan kecuali Anda menyebarkan alat CLI atau menggunakan proses rilis untuk menghasilkan paket produksi.

Jika package-lock.json dan npm-shrinkwrap.json ada di direktori root paket, package-lock.json akan diabaikan sepenuhnya.

Tautan asli: https://docs.npmjs.com/files/package-lock.json


Sejak rilis npm 5.x, peran kunci 5.6.0 telah berubah berkali-kali, dan sekarang banyak teks putih kecil di Internet yang terjebak dalam terjemahan dokumen sebelumnya.

Saya memperbarui dari npm3.x ke npm5, tetapi menemukan bahwa fenomena saat mengeksekusi 'npm i' tidak konsisten dengan artikel sains populer di Internet.

Disebutkan bahwa tidak peduli bagaimana file package.json dimodifikasi, jika npm i dieksekusi berulang kali, npm akan diunduh sesuai dengan informasi versi yang dijelaskan dalam file kunci.

Disebutkan juga bahwa saat mengulangi npm i, npm akan mengabaikan informasi kunci dan mengunduh modul pembaruan sesuai dengan informasi versi versi Semantik dari paket di package.json (kunci tampaknya tidak berguna).

**Menurut informasi, aturan npm i telah berubah tiga kali sejak rilis npm 5.0. **

1. versi npm 5.0.x, tidak peduli bagaimana package.json berubah, npm i akan diunduh sesuai dengan file kunci

package-lock.json file tidak diperbarui setelah file package.json diubah · Masalah #16866 · npm/npm https://github.com/npm/npm/issues/16866
Masalah ini mengeluhkan masalah ini, jelas saya mengubah package.json secara manual, mengapa Anda tidak memberi saya paket peningkatan! Dan kemudian mengarah ke masalah 5.1.0 ...

2. Setelah versi 5.1.0, npm install akan mengabaikan file kunci untuk mengunduh npm terbaru

Kemudian seseorang mengangkat masalah ini mengapa penguncian paket diabaikan? · Masalah #17979 · npm/npm https://github.com/npm/npm/issues/17979
Keluhan itu akhirnya berkembang menjadi aturan setelah versi 5.4.2.

3. Setelah versi 5.4.2, mengapa package-lock diabaikan? · Masalah #17979 · npm/npm https://github.com/npm/npm/issues/17979


Secara kasar, jika package.json diubah, dan package.json berbeda dari file kunci, npm akan mengunduh paket terbaru sesuai dengan nomor versi dan arti semantik paket saat mengeksekusi 'npm i', dan memperbaruinya untuk dikunci.

Jika keduanya berada dalam keadaan yang sama, maka mengeksekusi npm i akan mengunduh sesuai dengan kunci, terlepas dari apakah versi paket yang sebenarnya baru atau tidak.






Mantan:Lakukan statistik laporan dan lengkapi metode waktu tanpa data
Depan:npm tutorial (4): Instal paket npm secara lokal
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com