Bunların birinde iki ayrı soru olduğunu görüyorum. Her ikisine de cevap vereyim.
Dosyayı repo haline getirmeli misiniz?
Evet. Ckuijjer'in cevabında belirtildiği gibi, Göç Kılavuzu'nda bu dosyayı repoya dahil etmeniz önerilir . Neden yapmanız gerektiğini anlamak için okumaya devam edin.
Nedir yarn.lock
?
Projeniz için tam bağımlılık sürümlerini ve her paket için sağlama toplamlarını depolayan bir dosyadır. Bu, ipliğin bağımlılıklarınız için tutarlılık sağlamanın yoludur.
Bu dosyanın neden gerekli olduğunu anlamak için önce orijinal NPM'lerin arkasındaki sorunun ne olduğunu anlamanız gerekir package.json
. Paketi yüklediğinizde NPM, belirli bir düzeltme (semver) yerine bağımlılığın izin verilen düzeltme aralığını depolar. NPM, belirtilen aralıktaki bağımlılığın en son bağımlılık sürümünü güncellemeye çalışacaktır (örn. Kırılmayan yama güncellemeleri). Bu yaklaşımla ilgili iki sorun vardır.
Bağımlılık yazarları yama sürüm güncellemelerini yayınlarken, aslında projenizi etkileyecek bir değişiklik getirebilir.
npm install
Farklı zamanlarda çalışan iki geliştirici farklı bağımlılıklar kümesine sahip olabilir. Bu, bir hatanın tam olarak aynı iki ortamda yeniden üretilememesine neden olabilir. Bu, örneğin CI sunucuları için derleme kararlılığı sorunlarına neden olabilir.
İplik ise maksimum öngörülebilirlik yolunu takip ediyor. Tam bağımlılık sürümlerini yarn.lock
kaydetmek için dosya oluşturur . Bu dosyanın yerinde ipliğe sahip olması, sürümleri çözümlemek yerine depolanmış sürümleri kullanır . Bu strateji, yukarıda açıklanan sorunların hiçbirinin gerçekleşmeyeceğini garanti eder.yarn.lock
package.json
yarn.lock
komutu npm-shrinkwrap.json
ile oluşturulabilene benzer npm shrinkwrap
. Bu iki dosya arasındaki farkları açıklayan bu cevabı kontrol edin .