npm 5 bugün yayınlandı ve yeni özelliklerden biri package-lock.json
dosyasının oluşturulmasıyla deterministik kurulumları içeriyor.
Bu dosyanın kaynak kontrolünde tutulması gerekiyor mu?
Her ikisinin de kaynak kontrolünde tutulması gereken yarn.lock
ve composer.lock
ile benzer olduğunu varsayıyorum.
Evet, package-lock.json
kaynak kontrolünde kontrol edilmek üzere tasarlanmıştır. Eğer npm 5 kullanıyorsanız, komut satırında şunu görebilirsiniz: created a lockfile as package-lock.json. Bu dosyayı commit etmelisiniz.
npm help package-lock.json
'a göre:
package-lock.json
, npm'nin kullanıldığı tüm işlemler için otomatik olarak oluşturulur. yanode_modules
ağacını ya dapackage.json
dosyasını değiştirir. Şunları tanımlar tam olarak oluşturulan ağaç, böylece sonraki yüklemeler ara bağımlılık güncellemelerinden bağımsız olarak aynı ağaçları üretir.
Bu dosya kaynak depolarına işlenmek üzere tasarlanmıştır ve çeşitli amaçlar için:
Takım arkadaşlarının, dağıtımların ve sürekli entegrasyonun tam olarak aynı bağımlılıkları yüklemesini garanti edecek şekilde bir bağımlılık ağacının tek bir temsilini tanımlayın.
gt; * Kullanıcıların dizinin kendisini işlemek zorunda kalmadan node_modules
un önceki durumlarına "time-travel" yapabilmeleri için bir olanak sağlayın.
- Okunabilir kaynak kontrol farkları aracılığıyla ağaç değişikliklerinin daha fazla görünürlüğünü kolaylaştırmak için.
- Ve npm'nin önceden yüklenmiş paketler için tekrarlanan metadata çözümlemelerini atlamasına izin vererek yükleme sürecini optimize edin.
package-lock.json
ile ilgili önemli bir ayrıntı, yayınlanamaması ve üst düzey paket dışında herhangi bir yerde bulunursa yok sayılacaktır. Paylaşır npm-shrinkwrap.json(5) ile bir format, esasen aynı dosyadır, ancak yayınlanmasına izin verir. Bir CLI aracı dağıtılmadığı sürece bu önerilmez veya Aksi takdirde üretim paketleri üretmek için yayın sürecini kullanmak.
Eğer
package-lock.json
venpm-shrinkwrap.json
dosyalarının her ikisi de bir paket,package-lock.json
tamamen göz ardı edilecektir.
Evet, bu dosyayı işleyebilirsiniz. npm'nin resmi dokümanlarından](https://docs.npmjs.com/files/package-lock.json):
package-lock.json
,npm
ninnode_modules
ağacını ya dapackage.json
ı değiştirdiği tüm işlemler için otomatik olarak oluşturulur. Oluşturulan tam ağacı tanımlar, böylece sonraki yüklemeler ara bağımlılık güncellemelerinden bağımsız olarak aynı ağaçları oluşturabilir.Bu dosya kaynak depolarına işlenmek üzere tasarlanmıştır[.]