Bağımlılıkların sürümleri

Anlamsal Sürümleme

Yarn’daki paketler Semantic Versioning‘u takip eder, ayrıca “semver” olarak da bilinir. Kayıt defterinden yeni bir paket indirdiğinizde semver sürümü aralığıyla beraber package.json‘ınıza eklenir.

Bu sürümler major.minor.patch‘a ayrılmış ve bunlardan biri gibi gözüküyor: 3.14.1, 0.42.0, 2.7.18. Sürümün her parçası farklı zamanlarda artırılıyor:

  • Artış major yaptığınızda kesme veya uyumsuz değiştirmek bir paketin API’si.
  • Increment minor when you add new functionality while staying backwards-compatible
  • Increment patch when you make bug fixes while staying backwards-compatible

Note: Ayrıca bazen bir şeyleri ön sürüm ya da betalar olarak semver formatında işaretleyen “etiketler” ya da “uzantılar” vardır (örneğin 2.0.0-beta.3)

Geliştiriciler iki semver versiyonunun birbirleriyle rekabet içinde olduğundan bahsettiklerinde backwards-compatible‘ın değiştiğini kast ederler (minor ve patch).

Versiyon aralığı

Bir bağımlılık belirtmek istediğinizde package.json dosyanızda ismini ve bir versiyon genişliği belirtin, bunlardan biri gibi:

{
  "dependencies": {
    "package-1": ">=2.0.0 <3.1.4",
    "package-2": "^0.4.2",
    "package-3": "~2.7.1"
  }
}

Sürümden ayrı bir sürü karakter bulunduğunu fark edeceksiniz. Bu karakterler, >=, <, ^, ve ~, birer operatör dür ve versiyon genişliği ni belirtmek için kullanılır.

Sürüm aralığının amacı, bağımlılığın hangi sürümünün kodla uyumlu olduğunu göstermektir.

Karşılaştırıcılar

Her sürüm aralığı comparators‘dan yapılır. Bu karşılaştırıcılar basitçe version tarafından takip edilen operator‘dır. İşte bazı temel işlemciler:

Karşılaştırıcı Açıklama
<2.0.0 şundan eski2.0.0 herhangi bir versiyon
<=3.1.4 şundan eski ya da şuna eşit3.1.4 herhangi bir versiyon
>0.4.2 şundan daha yeni0.4.2 herhangi bir versiyon
>=2.7.1 şundan güncel ya da şuna eşit2.7.1 herhangi bir versiyon
=4.6.6 şuna eşit 4.6.6 herhangi bir versiyon

Note: Eğer hiçbir işlemci belirtilmediyse, o zaman = işlem aralığında kabul edilir. Yani = işlemcisi etkin bir şekilde tercihe dayalı.

Kesişimler

Karşılaştırıcı set oluşturmak için karşılaştırıcı aralarında beyaz boşluk bırakılarak birleştirilebilirler. Bu içerdiği karşılaştırıcılar arasında ** arakesit ** yaratıyor. Örneğin karşılaştırma seti olan >=2.0.0 <3.1.4 şu anlama gelir, * “daha büyük veya 2.0.0 *‘e eşit ve **, 3.1.4‘den daha az.

Birleşimler

Bir tam sürüm aralığı || tarafından bir araya getirilmiş birkaç karşılaştırıcıyı birleştirir. Birliğin iki tarafı da tatmin olursa, bütün sürüm aralığı karşılandı. Örneğin, sürüm aralığı <2.0.0 || >3.1.4 anlamı “daha az 2.0.0 veya daha büyük 3.1.4.

Pre-release etiketleri

Versiyonlar ayrıca ön-sürüm etiketleri (örn. 3.1.4-beta.2) ne sahip olabilirler. Eğer comparator, sürüm öncesi etiketi olan bir sürümü içerir. aynı `Binbaşı sürümleri.küçükler.yama < / a0 > sürümü.</p>

Örneğin, aralığı >=3.1.4-beta.2` `3.1.4-beta eşleşir.2` `3.1.4-beta.12`, ancak*değil * < 0>Eşleştir 3.1.5-beta.1 *teknik olarak* "büyük veya eşit" (`>`) `3.1.4-beta.2` sürüm. Ön-sürümlerde kazara kırma değişiklikleri bulunur ve genellikle belirttiğiniz sürüm dışındaki ön-sürümlerle eşleştirmek istersiniz bu davranış yararlıdır. #### Gelişmiş versiyon aralıkları ##### Tire Aralıkları Tireleme aralıkları (ör. ` 2.0.0 - 3.1.4 </ 0>) bir kapsayıcı </ 1> kümesi belirtir. Eğer sürümü (örneğin 0.4 </ 0> veya 2 </ 0>) dışarıda kaldıysa sıfırlar ile doldurulur.</p>

Sürüm aralığı Geliştirilmiş sürüm aralığı
2.0.0 - 3.1.4`</td> </tr> </tbody> </table> ##### X-Aralıkları Any of `X`, `x`, or `*` can be used to leave part or all of a version unspecified. | Sürüm aralığı | Geliştirilmiş sürüm aralığı | | ------------- | ---------------------------------------------------- | | `*` | `>=0.0.0` (herhangi bir versiyon) | | `2.x` | `>=2.0.0 <3.0.0` (ana sürümle eşleştir) | | `3.1.x` | `>=3.1.0 <3.2.0` (ana ve alt sürümle eşleştir) | Eğer bir versiyonun bir kısmı dışarıda kalırsa, bunun bir x-aralığı olduğu varsayılır. | Sürüm aralığı | Geliştirilmiş sürüm aralığı | | ----------------- | --------------------------------- | | ' ' (boş dizilim) | `*` veya `>=0.0.0` | | `2` | `2.x.x` or `>=2.0.0 <3.0.0` | | `3.1` | `3.1.x` or `>=3.1.0 <3.2.0` | ##### Tilde aralıkları Küçük bir sürüm ile belirtilen `~` kullanarak `düzeltme` değişiklikleri sağlar. Kullanarak `~` belirtilen yalnızca büyük sürüm `küçük` değişikliklerine izin verir. | Sürüm aralığı | Geliştirilmiş sürüm aralığı | | ------------- | --------------------------------- | | `-3.1.4` | `>=3.1.4 <3.2.0` | | `-3.1` | `3.1.x` or `>=3.1.0 <3.2.0` | | `-3` | `3.x` or `>=3.0.0 <4.0.0` | > **Note:** Specifying pre-releases in tilde ranges will only match pre-releases in that same full version. Örneğin, sürüm aralığı `~3.1.4-beta.2` `3.1.4-beta karşı eşleşir.4` ama değil `3.1.5-beta.2` çünkü `Binbaşı.küçükler.yama</a0> sürümü farklıdır.</p> </blockquote>
Düzeltme işareti aralıkları

Sürümdeki ilk sıfır olmayan basamağı değiştirmeyen değişikliklere izin ver, ya 3` ` `veya` < 0 > < /0 > < 0 > 0.4.2 < / 0>.</p>

Sürüm aralığı Geliştirilmiş sürüm aralığı
^3.1.4`</td> > > </tr> > > </tbody> </table> > > > **Note:** `yarn ekleyin [package-name]` çalıştırdığınızda varsayılan olarak bu düzeltme işareti aralığı kullanın. > > Sürümün bir kısmı dışarıda bırakılırsa, eksik parçalar doldurulur sıfır. Bununla birlikte, bu değerin değiştirilmesine hala izin verirler. > > | Sürüm aralığı | Geliştirilmiş sürüm aralığı | > | ------------- | --------------------------- | > | `^0.0.x` | `>=0.0.0 <0.1.0` | > | `^0.0` | `>=0.0.0 <0.1.0` | > | `^0.x` | `>=0.0.0 <1.0.0` | > | `^0` | `>=0.0.0 <1.0.0` | > > ### Daha fazla kaynak > > * Bu sürüm sistemi nasıl çalıştığını tam bir belirtimi için bkz. [`düğüm-semver` benioku](https://github.com/npm/node-semver). > * npm semver calculator </ 0> kullanarak bu paketleri gerçek paketler üzerinde test edin.</li> </ul>