6

Babel'de, herhangi bir sorun olmadan iki modülün import iki modülüne sahip olabileceğimi fark ettim. Babel'de bilinen ve beklenen bir davranış olarak buna değinen birkaç yer buldum. Biliyorum ki bu, çoğu insanın çok fazla bir anti-örüntü olarak kabul edildiğini, ancak bu soru için bunu göz ardı ettiğini lütfen göz önünde bulundurun:ES6/7 'deki genel bağımlılıklar

Bu doğru davranış olup olmadığını bilen var mı (yoksa) ES6/7? Ben resmi bir cevap (ve teknik açıklama) bulabileceğiniz

yakın şey ben nodeJS çalışmak this comment on 2ality.com

+3

İlgili: [ES6 modülleri: ilk başta içe aktarılan sabitler tanımsızdır; Daha sonra kullanılabilir hale gelirler] (http://stackoverflow.com/q/37515816/218196) –

+2

Evet, genellikle kötü uygulamalar olarak kabul edilir. Ancak ES modülleri döngüsel bağımlılıkları desteklemek için tasarlanmıştır. ES 2017 spesifikasyonunda bazı bilgiler bulunmaktadır [15.2.1.16.3YolverExport Beton Metodu] (https://tc39.github.io/ecma262/#sec-resolveexport). Ancak, okumak gerçekten zor olduğunu düşünüyorum. [Bu yazı] (http://www.2ality.com/2014/09/es6-modules-final.html) daha iyi okunabilir. – Leo

+0

@Leo - referans verdiğiniz (ve araştırmamın hemen sonrasında geçmişim), aradığım şey (aslında bu soruya, aslında bu yazıya bağlı olduğum halde; p). Muhtemelen yorumunuzu cevap olarak atmalısınız, çünkü bunu memnuniyetle kabul ediyorum. OO'da, circ diye bir soru yok. deps genellikle bir tabancadır. Fakat JS daha fazla FP modeline doğru daha fazla sürüklendiğinde, çapraz bağımlı modüllerin otomatik bir anti-pattern olmasını durduracağını düşünüyorum. Yani, OO devlerinin ayaklarında ateş etmeyi durdurması gerektiğinden, uyarı her zaman akıllıca olacaktır. – Andrew

cevap

5

Genellikle kötü uygulamalar olarak kabul edilir. Ancak ES modülleri döngüsel bağımlılıkları desteklemek için tasarlanmıştır. ES 2017 spec 15.2.1.16.3ResolveExport Concrete Method'da bazı bilgiler bulunmaktadır. Ancak, bence okumak gerçekten zor (dürüst olmak gerekirse çok acı çekiyorum). 2ality.com'dan bahsettiğiniz yayın daha iyi okunabilir.

1

, bu yüzden biraz aynı. Bildiğim kadarıyla, “döngü gerektirmesi”, onlardan kaçınmak için en iyisi olsa bile, yasa dışı değildir. Bir döngü varsa, nodeJS en azından bunu halleder: ikinci kez gerektirmez.