Seçmeli bağımlılık çözümleri

Yarn supports selective version resolutions, which lets you define custom package versions inside your dependencies through the resolutions field in your package.json file. Normalde, bu, yarn.lock dosyası içerisinde el ile düzenleme gerektirirdi.

Bunu yapmayı neden istiyorsunuz?

  • Önemli bir yükseltmeye sahip başka bir pakete bağlı olan sık güncelleştirilmeyen bir pakete bağlı olabilir. Bu durumda, doğrudan bağımlılık tarafından belirtilen sürüm aralığı yeni alt-bağımlılık sürümü kapsamaz, yazar için bekleyen sıkışmış.

  • Projenin bir alt-bağımlılık önemli bir güvenlik güncellemesi var ve bunu direkt bağımlılık için en az bir sürüm güncelleme sorunu için beklemek istemiyorum.

  • Sen unamaintainede güveniyorsun ama çalışma paketi ve bağımlılıklarından biri yükseltildi. Eğer ugprade şeyleri kırmak olmaz biliyorum Ve aynı zamanda sadece küçük bir bağımlılık güncellemek için güvenerek paketi çatallamak istemiyorum.

  • Bağımlılık sürümü geniş bir yelpazede ve alt tanımlar-bağımlılık sadece sorunlu bir güncelleme var bu yüzden daha önceki bir sürümünü atmak istiyorum.

Nasıl kullanılır?

Add a resolutions field to your package.json file and define your version overrides:

package.json

{
  "name": "project",
  "version": "1.0.0",
  "dependencies": {
    "left-pad": "1.0.0",
    "c": "file:../c-1",
    "d2": "file:../d2-1"
  },
  "resolutions": {
    "d2/left-pad": "1.1.1",
    "c/**/left-pad": "1.1.2"
  }
}
 
Context | Request Context

Ardından yarn install çalıştırın.

İpuçları & Püf Noktalar

  • Eğer geçersiz çözünürlük tanımlarsanız (geçersiz paket ismi gibi) uyarı alırsınız
  • Eğer çözünürlük sürümünüz veya diziniz geçersizse uyarı alırsınız.
  • Eğer çözünürlük sürümünüz veya diziniz orijinal dizinle uyumlu değilse uyarı alırsınız.

Sınırlamalar & Uyarılar

  • İç içe geçmiş paketler düzgün bir şekilde çalışmayabilir.
  • Bazı uç durumlarda bu oldukça yeni bir özellik olduğu için düzgün çalışmayabilir.