SORU
26 EYLÜL 2013, PERŞEMBE


Bower sürümü sözdizimi nedir?

Bower bana aşağıdaki sözdizimini kullanarak: paketler için sürüm gereksinimleri belirlemenizi sağlar

"dependencies": {
  "<name>": "<version>",
},

Ama <version> için kullanılacak sözdizimi ne olduğunu bulmak mümkün olmamıştır. Sürümleri belirtin biliyorum:

  • ">1.0.0" ile belirli bir sürümünden daha büyük
  • ya da daha büyük bir sürüm için eşit: ">=1.0.0"
  • ya da bazı aralığı: "1.0.0 - 2.0.0".

Ben de tilde içeren sözdizimi ortak bir sürüm olduğunu biliyorum. "~1.0.0". Ama ne anlama geldiğini ve "=1.0.0" aynı olup olmadığından emin değilim.

Ayrıca ilgilenen birden fazla ardışık olmayan sürümleri 1.0.3 tam olarak artı sürümleri 1.5.0, vb daha büyük gibi belirlemek mümkün olup olmadığımı bilmek istiyorum

CEVAP
5 Aralık 2013, PERŞEMBE


Özetle, Bower sürüm numaralarını sözdizimi (ve etmesinin önünü) için kısa olan SemVer aradı, 'Semantik Sürüm'. the semver parser within Node API Bower ve etmesinin önünü kullanılan SemVer ayrıntılı sözdizimi belgeleri bulabilirsiniz. Daha alttaki spec hakkında bilgi edinebilirsiniz (ki yapardeğil~ veya diğer sözdizimi ayrıntılar söz) semver.org.

SemVer sadece bir sözdizimi değil! API sözdizimi ne demek olduğunu anlamaya yardımcı olacak, yayınlamak için doğru yolları hakkında söylenecek çok ilginç şeyler var. En önemlisi:

Kamu API belirledikten sonra, sürüm numarası için belirli aralıklarla değişiklik iletişim kurmak.X. Y. Z sürüm biçimi (Büyük düşünün.Küçük.Yama). Hata düzeltme sürümü, geriye doğru uyumlu API eklemeler/değişiklikler alt sürüm artışı, ve geriye doğru uyumsuz API değişiklikler API artış artış büyük sürümünü etkileyen giderir.

Yani, ~ hakkında soru belirli Binbaşı ile ilgilidir.Küçük.Yama şema. ~ da kabul etmeye istekli olduğunuzu sürümleri aralığını daraltmak için kullanabilirsiniz:

  • sonrakiyama-seviye(değiştirir< . em ^"hata düzeltmeleri API etkilemiyor"veya:
  • sonrakiküçük seviye(değiştirir< . em ^"geriye doğru uyumlu API eklemeler/değişiklikler")

Sadece 1.2 AngularJS için yama-seviye sonraki değişiklikleri kabul etmeye istekli olduğunuzu gösterir.x ağaç,1.2.4 ile başlıyorama 1.3 değil.x, kullanmak istiyorum:

"angular": "~1.2.4"

Küçük düzey veya yama-seviye değişiklikleri izleyen herhangi bir 1.3,, 1.4.9 1.4, 1.2 dahil olmak üzere, daha büyük ama 2 değil mi alacaksın gösteriyor.x:

"angular": "~1.2"

Eğer daha önce kullandığın o . şimdi, bu yaklaşım bile büyük seviye değişiklikleri için de geçerli olacak varsayalım:

"angular": "~1"

...1 almak istiyorum.2 x.3 x.x... bu insana ne kazandırdığını 1.0, eşdeğer yukarıdaki küçük düzey aslında sadece değişiklikleri Yerine:

"angular": "~1.0"

Eğer bu konuda yeterince düşünürsen mantıklı geliyor, ama gerçekten kullanıcı dostu değil pek. Bu soruyu varlığını ~ kullanımı tamamen sezgisel olmadığını açıkça ortaya koyuyor ve en az ilkesini biraz sürpriz yenilgiler. Yani, ek bir sözdizimi (2.0? SemVer yeni belki) var bu tam da beklediğimiz gibi, genellikle yazılı olarak kullandığınız aynı sözdizimini kullanarak ve konuşmaya çalışır:

"angular": "1.2.x"

ya da:

"angular": "1.x"

Sadece ilk örnekte 1.2.0 - 1.2.∞, gerektiğinde bunu kullanabilirsiniz.

Neden herkes bunu daha sık kullanmıyor? ~ sözdizimi insanlar bile en geleneksel kullanımı kalırolabiliriki nedenden dolayı 1.2.x kullanım:

  1. İnsanlar zaten bunu biliyor, görüyor kod örnekleri.
  2. Sadece eğer istersen ~1.2.0 start veren konsolide bir sözdizimi, ama aynı zamanda herhangi bir keyfi yama küçük düzeyde, ~1.2.47 gibi/.

Bu son etmesinin önünü bile son semver paket ve SemVer 2.0 spec böylece de kendisini destekleyen belki de bu yüzden, kendi paketi.json dosyası "~2.4.0" biçiminde bağımlılıkları pek çok yerine 2.4.x biçimini içerirolabilirkullanın. ~, sadık kalmak üzere sözdizimi bütün yolu 70 sürümlü bağımlılıkları listesini aşağı tutarlı, patch sayı kabul edilebilir ne olursa olsun.

Neyse, SemVer sözdizimi geri kalanı oldukça zengindir ve burada detay vermeyeceğim birçok ek seçenekler içerir. (Ve başka bir poster bazıları sağladı.) node semver package's readme şuna bak.


RE: Ardışık Olmayan Sürüm Sayılar: ardışık olmayan sürüm numaralarını belirterek ilgili gibi görünüyor Sadece fark OP Son soru, aralıkları ise oldukça düzenlenebilir (varsa)/. Evet, O, ortak kullanarak yapabilirsiniz çift boru "veya" operatörü: ||. Bunun gibi

"angular": "1.2 <= 1.2.9 || >2.0.0"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andyabc45

    andyabc45

    1 Mayıs 2011
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • theatre2film

    theatre2film

    12 NİSAN 2006