Yanıtlar:
Babel'in aşama ön ayarları, TC39 Sürecine ve olası bir dil değişikliği için her teklifin farklı durumlarına eşittir . Bu aşamada önerilen tüm değişiklikler için uygulamaları ve çoklu dolguları içerirler.
Şu anda içinde Stage-0
bulunan her şey Strawman'dır, ES6 değil . Gelecekteki bir Javascripttir ve herhangi bir resmi ECMAScript spesifikasyonuna gireceği kesinlikle kesin değildir.
Lütfen bunun getireceği sonuçları anlamadan çalışacak şekilde ayarlamayınstage-0
.
Yalnızca ES6 özelliklerini içeren Babel Ön Ayarı, preset-es2015
stage-0
ancak hiçbir şekilde değişiklikten ve hatta tamamen kullanımdan kaldırılmaya karşı tamamen güvenli ( bkz.Aşama 1'den sonra geri çekilen Çağrı oluşturucu önerisi ). Ancak 4. Aşama dışındaki herhangi bir Aşama için de aynı şey söylenebilir (yani Bitti).
preset-es2015
ile babel-preset-node6
daha iyi Düğümü 6 veya çalışan eğer, bu günlerde.
babel-preset-env
herhangi bir ortamı hedef alabilir!
babel-preset-env
INSTEAD OF kullanın babel-preset-es2015
. babel-preset-es2015
neredeyse modası geçmiş
Çoğunlukla diğer cevaplarla detaylandırıldığı gibi. 4. Aşama en Kararlıdır ve Aşama 0, en tehlikelidir. İşte önceki cevaplardan ve dokümantasyondan 5 aşama için yüksek düzeyde bir kırılım. Bunu ekliyorum çünkü buna geldiğimde, her bir aşamanın ne olduğuna dair daha üst düzey bir analiz bekliyordum:
ECMAScript Standardına dahil edilmeye hazır, testi geçti ve bir sonraki revizyonun parçası olacak
Tam bir özellik metni içerir ve çoğunlukla test edilmiş ve geri bildirimlerle sağlanan eklentileri içerir. Çözüm tamamlandı ve diğer tüm değişiklikler uygulama deneyimine dayanıyor.
Eklentiler için daha fazla destek mümkün olduğunca tamamlandı. Bunların gereksinimleri çoğunlukla yolda yalnızca artan değişikliklerle karşılanmaktadır. Anlambilim ve API'nin tamamlanması bekleniyor. Büyük olasılıkla şartnamenin bir parçası olacak.
Her seviye kapsayıcıdır, 4, 3'ü 2 içerir vb ... Umarım bu özet gelecekte birine yardımcı olur.
Aşamalar, çılgın ama yararlı fikirlerden ES6 gibi kabul edilmiş standartlara kadar özellikleri çalıştıran TC39 süreci tarafından tanımlanan aşamaları temsil eder. Süreç biraz zaman alır, çünkü her köşe vakası tartışılmalı, düşünülmeli, test edilmeli, çoklu doldurulmalı, biraz daha tartışılmalıdır, vb. Yani, standart bir kurumdur. Amaç, "ES5" demek gibi "ES6" demek de tam ve eksiksiz bir anlama sahip olacaktır.
Uygulamada, proje gereksinimleriniz denenmiş ve gerçek olmaktan çok kullanışlı, belirsiz olsa da dil özellikleriyle oynamaya kadar değişebilir. Muhtemelen şu bağlantılarla başlamak istersiniz:
TC39 Sürecine Genel Bakış : Bu, aşamaların ne anlama geldiğine ve özelliklerin aşamadan aşamaya nasıl ilerlediğine dair şık bir grafik içerir. Aşağıda TC39'a genel bir bakış bulunmaktadır.
Etkin Teklifler : Belirli tekliflerin hangi aşamada olduğuna dair hızlı bir genel bakış. Ayrıca Bitmiş, Etkin Değil ve Aşama 0 tekliflerine bağlantılar da içerir. Bugün, Nisan 2017, Herkese Açık Sınıf Alanları 2. aşamadadır, yani tam olarak tanımlanmıştır ve hakemler atanmıştır, ancak tam olarak incelenmemiştir.
Aşama 3 için Babel Hazır Ayar Paketi : Tüm Aşama 3 teklifleri için Git ve NPM bağlantılarının bulunduğu eklenti sayfası. Temel olarak, bu eklenti, teoride, TC39 aşama 3'teki mevcut önerileri çoklu dolduran paketlerin koleksiyonunu çeker. Pratikte, hatalar meydana gelebilir. Ayrıca, benzerini Benzer şekilde bulabilirsiniz, Aşama 2 ve altındaki eklenti sayfalarına bağlanır . Bu sayfalar, hem Aşama 3 tekliflerini hem de daha az kararlı teklifleri içeren paketlere bağlanacaktır.
Babel Ön Ayarı 'env' : Bu Babel ön ayarı, bilinen bir ortamda bu özellikleri desteklemek için gereken doğru paketleri seçerek tamamlanmış teklifleri destekler. Örneğin, yerel bir node
yürütülebilir dosya, eski bir tarayıcıdan daha az eklenti gerektirir. Gelecekteki onaylanmış özellikleri destekleyen 'stage-4' eklentisi düşünülebilir.
Özetle, bu yayın öncesi özellikleri kullanıyorsanız, yalnızca bu ön sürüm özellikleriyle ilgilenmeniz gerekir. Bunları kullanmanız gerekiyorsa, ihtiyacınız olana sahip en yüksek sayıda aşama seçin. Su soğutucunun etrafında tartışmak için sadece çılgın özelliklere sahip bir oyuncak enstalasyonu istiyorsanız, devam edin ve 0. aşamayı alın.
Bu, anlaşılması gereken en iyi başlangıç noktasıdır. Babel ön ayarları nelerdir
Bağlantıdan bir alıntı:
Aşama 0 - Strawman: sadece bir fikir, olası Babel eklentisi.
Aşama 1 - Teklif: üzerinde çalışmaya değer.
2. Aşama - Taslak: ilk şartname.
3. Aşama - Aday: tam özellik ve ilk tarayıcı uygulamaları.
4. Aşama - Tamamlandı: sonraki yıllık sürüme eklenecek
Genel Resim :
preset
halinde gruplamıştır , buna babel'in tabiriyle a denir . Ve her ön ayar, çeşitli risk seviyelerinden eklentiler içerir.preset-0
Bu, çok deneysel olan özellikler için eklentilere sahip olduğu ve dolayısıyla son spesifikasyonlara ulaşma riski yüksek olduğu anlamına gelir. Bu, bir geliştiriciye Javascript'in belirli bir özelliğe sahip olması gerektiği fikrine benziyor ve bunu TC-39 teklif sürecine getirmek için bazı çalışmalar yaptı.preset-1
TC-39 tarafından kabul edilen özellik fikirleri için eklentileri içerir ve üzerinde çalışmaya değer buluyorlar.preset-2
Özellik için ilk taslağın hazır olduğu özellikler için eklentiler. Ve devam ediyor ..Yani Aşama 0'daki bir özellik bir süre sonra Aşama 2'ye ulaşabilir ve bir süre sonra Javascript'in sonraki sürümünde yer alabilir.
Dolayısıyla, bu Babel Ön Ayarlarının her bir sürümünde, içinde farklı eklentiler bulabilirsiniz. Aşama 0'daki bir özelliğin bazı değişikliklerden geçmesi ve işleyişinde büyük değişiklikler yapması da olabilir. Tamamen farklı bir API ile aşama 2'ye ulaştı. Bu nedenle geliştiriciler, bu eklentileri güncellediklerinde kodlarında gerekli değişiklikleri yaptıklarından emin olmalıdır.
Asıl soru, "babel-preset-stage-0, babel-preset-stage-1, babel-preset-stage-2 ve babel-preset-stage-3 arasındaki fark nedir", odaklanan cevaplar tuhaftır "farkı TC39 arasında aşama-0, aşama-1 .. terminoloji "oylanırken, tek ilgili (doğru olmasa da) olumsuz oylanır. Babel sitesinden alıntı yapmak için:
Babel ön ayarı, paylaşılabilir bir eklenti listesidir.
Resmi Babel Stage ön ayarları, JavaScript'teki yeni sözdizimi önerileri için TC39 Staging sürecini izledi.
Her ön ayar (örn. Aşama-3, aşama-2, vb.) O aşama ve üstündeki tüm eklentileri içeriyordu. Örneğin, aşama-2, aşama-3'ü içeriyordu, vb.
Ana fikir, 'üstlerindekiler'dir. İkinci yarıya cevap vermeyeceğim çünkü yukarıdaki cevaplar o kısımda çok iyi.
Anladım. Https://babeljs.io/docs/plugins/preset-stage-0/ adresine başvurabilirsiniz.
Kısa bir preset-stage-0
deyişle preset-stage-1
, sahip olan ve preset-stage-1
tüm işlevselliği içeren tüm işlevleri içerir preset-stage-2
ve benzeri ...
Alt rakam daha güçlüdür. Projenizde, problemlerle uğraşmazsanız, sadece ayarlayın stage-0
...
stage-0
, vb. Gerçekte ne olduğunu anlıyor musunuz? "Alt rakam daha güçlü" dediğinize göre, inanmıyorum.
stage
ile karıştırdım ES6
, @RGraham buna işaret etti The Babel Preset which contains only ES6 features is preset-es2015
. Teşekkürler!
babel-preset-stage-0
arasında değişen tüm eklentileri içerir stage-0
için stage-3
. Bu, teklif edip edemeyeceklerine bakılmaksızın, önerilen tüm özellikleri istediğim anlamına geliyor.
stage-1
? Kullanmak için güvenli mi?stage-1
Gelecekte bazı özellikler kullanımdan kaldırılıp API'ler değiştirilebilir mi?