Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 9038|Yanıt: 0

npm kurulumunun oluşturduğu package-lock.json nedir?

[Bağlantıyı kopyala]
Yayınlandı 13.12.2017 13:17:45 | | |
NPM değişikliği node_modules ağaç veya herhangi bir eylem package.json için otomatik olarak bir package-lock.json oluşturulur. Sonraki kurulumların ara bağımlılık güncellemelerine bakmaksızın aynı ağacı üretebilmesi için oluşturulan tam ağacı tanımlar.

Bu dosya, kaynak kod deposuna gönderilmek üzere tasarlanmıştır ve çeşitli amaçlar için kullanılabilirdir:

Ekip arkadaşlarının, dağıtımların ve sürekli entegrasyonun tam olarak aynı bağımlılıkların kurulmasını garanti etmek için bağımlılık ağacının tek bir temsilini tanımlar.

Kullanıcılara, dizinin kendisini bağlamadan önceki node_modules durumuna "ilerleme" için bir araç sunun.

Okunabilir kaynak kontrol farklılıkları sayesinde ağaç değişikliklerinin daha fazla görünürlüğünü kolaylaştırmak.

Ve kurulum sürecini, NPM'nin daha önce kurulmuş paketlerin tekrarlayan meta veri çözümünü atlamasına izin vererek optimize edin.

package-lock.json ile ilgili önemli bir detay, piyasaya sürülemeyecek ve üst düzey paket dışında bir yerde bulunursa göz ardı edileceğidir. Formatı npm-shrinkwrap.json ile paylaşıyor, temelde aynı dosya ama yayın yapmaya izin veriyor. Bu, bir CLI aracı dağıtmadıkça veya sürüm sürecini kullanarak üretim paketi üretmediğiniz sürece önerilmez.

Eğer hem package-lock.json hem de npm-shrinkwrap.json bir paketin kök dizininde varsa, package-lock.json tamamen göz ardı edilir.

Orijinal bağlantı: https://docs.npmjs.com/files/package-lock.json


npm 5.x çıkışından bu yana, 5.6.0 kilidinin rolü birçok kez değişti ve artık internetteki birçok küçük beyaz metin önceki belge çevirisinde takılı kalmış.

npm3.x'ten npm5'e güncelledim ama 'npm i' çalıştırırken yaşanan fenomenin internetteki popüler bilim makalesiyle tutarlı olmadığını fark ettim.

Dosya package.json şekilde değiştirilirse değiştirilsin, npm i tekrar tekrar çalıştırılırsa, npm kilit dosyasında açıklanan sürüm bilgilerine göre indirilecektir.

Ayrıca, npm i tekrarlandığında, npm kilit bilgilerini görmezden gelerek paketin package.json'daki Semantik sürüm versiyon bilgilerine göre güncelleme modülünü indireceği de belirtilir (kilit işe yaramaz gibi görünüyor).

**Bilgilere göre, NPM 5.0 çıkışından bu yana NPM I kuralları üç kez değişti. **

1. NPM 5.0.x sürümü, package.json nasıl değişirse değişsin, npm I kilit dosyasına göre indirilecek

package-lock.json dosya değiştirildikten sonra güncellenmediği package.json dosya · Sayı #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Bu sorun bu sorundan şikayet ediyor, tabii ki package.json manuel değiştirdim, neden bana bir yükseltme paketi vermiyorsun! Ve sonra 5.1.0 sorunu ortaya çıkıyor...

2. 5.1.0 sürümünden sonra, npm kurulumu en son npm'yi indirmek için kilit dosyasını görmezden gelir

O zaman biri bu konuyu gündeme getirdi: Neden paket kilidi görmezden geliniyor? · Sayı #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
Şikayet sonunda 5.4.2 sürümünden sonra kurallara dönüştü.

3. 5.4.2 sürümünden sonra paket kilidi neden görmezden geliniyor? · Sayı #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


Kabaca olarak, package.json değiştirilirse ve package.json kilit dosyasından farklıysa, npm 'npm i' çalıştırırken paketin sürüm numarasına ve anlamsal anlamına göre en son paketi indirir ve kilitlemek için günceller.

Eğer ikisi de aynı durumdaysa, npm i çalıştırıldığında kilide göre indirilir, gerçek paket sürümü yeni olup olmamasına bakılmaksızın.






Önceki:İstatistikleri bildirin ve zaman yöntemini veri olmadan tamamlayın
Önümüzdeki:npm eğitimi (4): npm paketlerini yerel olarak kur
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com