Rumah > hujung hadapan web > tutorial js > npm i vs npm ci

npm i vs npm ci

Patricia Arquette
Lepaskan: 2024-11-28 16:02:11
asal
214 orang telah melayarinya

npm i vs npm ci

Kita semua tahu tentang pemasangan npm, tetapi sesetengah daripada anda mungkin tidak tahu tentang npm ci (pemasangan bersih). Perintah ini sangat berguna dalam persekitaran CI. Menggunakan npm ci boleh menjadikan saluran paip binaan anda lebih cepat dan lebih stabil. Mempelajari arahan ini membantu anda memahami lebih lanjut tentang pemasangan npm dan sebab package-lock.json & package.json sangat penting. Mengetahui asas ini memberi anda kejelasan yang lebih baik.

Apakah npm ci (pemasangan bersih)?

npm ci ialah arahan yang digunakan untuk memasang kebergantungan dalam projek, memfokuskan pada kelajuan dan ketekalan. Ia amat membantu dalam persediaan penyepaduan berterusan (CI).

Bagaimanakah ia berbeza daripada pemasangan npm?

  • Pemasangan Lebih Cepat:

    npm ci melangkau mengemas kini package-lock.json. Ia betul-betul mengikut kebergantungan fail kunci, menjadikan proses lebih cepat dan boleh diramal.

  • Fail Kunci Tegas:

    Ia menggunakan versi pergantungan yang tepat dalam package-lock.json. Jika terdapat sebarang ketidakpadanan antara package.json dan package-lock.json, ia akan menimbulkan ralat. Ini memastikan semua persekitaran (tempatan, CI, pengeluaran) menggunakan kebergantungan yang sama.

  • Bersihkan Batu Tulis:

    Sebelum memasang, npm ci memadamkan folder node_modules untuk mula baharu.

Bila hendak digunakan?

  • Pipeline CI/CD: Sesuai untuk sistem binaan automatik di mana anda memerlukan pemasangan yang pantas dan konsisten tanpa kemas kini.
  • Fail Kunci Dipercayai: Gunakan apabila anda mahu kebergantungan sepadan dengan apa yang ditakrifkan dalam package-lock.json.

Berikut ialah jadual rujukan pantas yang membuka banyak kawasan tersembunyi untuk anda dengan memahami perbezaan utama antara pemasangan npm dan npm ci:

Langkah pasang npm npm ci
1. Resolusi Ketergantungan Menyelesaikan kebergantungan berdasarkan package.json dan mengemas kini package-lock.json untuk mencerminkan sebarang perubahan. Melangkau resolusi, menggunakan versi tepat dalam package-lock.json tanpa merujuk kepada package.json untuk julat versi.
2. Semakan Keserasian Versi Memastikan kebergantungan memenuhi julat yang ditentukan dalam package.json, mengemas kini package-lock.json jika perlu. Memerlukan versi dalam package-lock.json sepadan dengan package.json dengan tepat; gagal jika tidak segerak.
3. node_modules Pembersihan Memasang hanya pakej yang tiada atau dikemas kini tanpa mengalih keluar node_modules, mengekalkan kebergantungan sedia ada yang tidak berubah. Padam node_modules sepenuhnya sebelum memasang semula semua yang baru.
4. Penjanaan Fail Kunci Menghasilkan package-lock.json baharu jika tiada; mengemas kininya berdasarkan perubahan package.json. Memerlukan package-lock.json sedia ada dan gagal jika tiada atau tidak segerak dengan package.json.
5. Segerakkan dengan package.json Kemas kini package-lock.json untuk diselaraskan dengan mana-mana kebergantungan baharu, diubah suai atau dialih keluar dalam package.json. Memerlukan package-lock.json untuk memadankan package.json dengan tepat; jika tidak, ia gagal, memastikan konsistensi versi yang ketat.
6. Pemasangan Ketergantungan Memasang kebergantungan ke dalam node_modules berdasarkan package.json, mengemas kini package-lock.json dengan mana-mana versi yang diselesaikan. Memasang kebergantungan tepat seperti yang dinyatakan dalam package-lock.json, memastikan kebolehulangan dan mengabaikan julat versi dalam package.json.
7. Pengubahsuaian Fail Kunci Mengubah suai package-lock.json untuk memadankan perubahan package.json secara automatik. Tidak mengubah suai package-lock.json tanpa mengira perubahan package.json, mengekalkan konsistensi.
8. Permintaan Rangkaian Mengambil sebarang kebergantungan baharu atau kemas kini yang tidak ditemui dalam node_modules. Hanya mengambil kebergantungan yang disenaraikan dalam package-lock.json, melangkau semakan tambahan.
9. Kelajuan Lebih perlahan, disebabkan oleh resolusi pergantungan, kemungkinan kemas kini fail kunci dan pemasangan tambahan. Lebih pantas, hanya menggunakan package-lock.json untuk pemasangan tepat, meminimumkan pemprosesan.
10. Keutamaan Fail package.json mengambil keutamaan: kebergantungan diselesaikan berdasarkannya dan package-lock.json dikemas kini untuk mencerminkan sebarang perubahan. package-lock.json mengambil keutamaan: pemasangan menggunakan versi tepat daripadanya, mengabaikan package.json kecuali untuk menyemak ralat penyegerakan (gagal jika ia tidak sepadan).
11. Kes Penggunaan Ideal Terbaik untuk pembangunan tempatan apabila mengubah suai atau menambah kebergantungan. Terbaik untuk persekitaran CI/CD, pengeluaran atau ketekalan, kelajuan dan kebolehulangan pada bila-bila masa adalah penting.

Atas ialah kandungan terperinci npm i vs npm ci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan