2014-07-19 27 views
5

dahil olmak üzere bir uygulamanın tüm kaynaklarını yüklemek için Require.js büyük, çoklu geliştirici projesi için bir uygulama çerçevesi oluşturuyorum. Bağımlılığı ve sınıf yüklemesini yönetmek için Require.js ve Angular'ı birlikte kullanma fikrini satıyorum. Ama şimdi Polimer'i de kullanmak istiyorum, çünkü delice harika.Polymer

Gereksinimlerim, polimer öğeleri kitaplıklarımı j'lerimdekilerle aynı şekilde yüklemek için nasıl kullanabilirim? Tüm uygulama kaynaklarımı yüklemem için tek doğru yol olarak askıya alma fikrini beğendim. Şablonu, komut dosyasını ve stili bir bileşeni temsil eden bir mantıksal .html dosyasına paketleyebilmenin ne kadar güzel olduğunu görüyorum ve bu parçaları ayrı dosyalara ayırabileceğimizi biliyorum, ancak herhangi bir bağlantıyı görür görmez Içeride "ithalat" şeyler Ben need.js alemine gidiyor hissediyorum.

Fikirler?

cevap

3

İkisi arasında bir miktar gerilim var çünkü her ikisi de izleme bağımlılıkları için kayıt sistemi olmak istiyor. Örneğin, /components/core-ajax/core-ajax.html numaralı bir http içe aktarma işlemini gerçekleştirirseniz, ../polymer/polymer.html numaralı bir http içe aktarma içeriyorsa, core-ajax için komut dosyalarından herhangi birini çalıştırmadan önce Polymer'in yüklenmesini sağlayın. Polymer ayrıca, bir grup web bileşenini tek bir dosyada derlemek için vulcanize adı verilen ve üretimdeki HTTP isteklerinin sayısını azaltmak için bir araca sahiptir.

Tanıdık geliyor mu? require.js, tüm bu parçalar için benzer bir mekanizmaya sahiptir. Tüm bunları birleştirmek için neler yapıldığının farkında olmadığımı ve her şeyi daha karmaşık hale getirmek için buhar toplayan ES6 Modülleri teklifinin bulunduğunu da belirtmek gerekir.

Şu an için önerim, mümkünse tam olarak bir bağımlılık izleyicisi seçmektir. Web bileşenleri kullanıyorsanız, bir requirejs modülünü basit bir web bileşenine dönüştürmenin karşılaştırmalı olarak daha kolay olması nedeniyle HTML içe aktarma yöntemini kullanmanızı öneririm.

örn. jquery'ye bağlı olan bir jquery.datatables.js komut dosyanız olduğunu varsayalım. gibi dosyalarınızı düzeni:

  • bileşenleri
    • jquery.datatables
      • jquery.datatables.js
      • jquery.datatables.html
    • jquery
      • jquery.js
      • jquery.html

jquery.html içerecektir:

<script src='jquery.js'></script> 

Ve

jquery.datatables.html sen koyardım:

<link rel='import' href='../jquery/jquery.html'> 
<script src='jquery.datatables.js'></script> 

HTML İthalat tekilleştirme yapmayla ilgilenir, böylece jquery.html'un sadece bir kez yükleneceğinden emin olabilirsiniz.

+0

ESD modülleri AMD ile birlikte nasıl çalışır? AMD/gerektirmeden büyük bir projeyi organize etmeyi hayal edemiyorum. – httpete

+0

Bu tamamen bir soru değil, ancak Square'in es6 modülü transpiler bugün AMD stil modüllerini derlemeyi destekliyor ve es6 modülü yükleme davranışı takılabilir olduğundan, birlikte çalışılması mümkün olabilir. –

+1

Bu [tartışmayı] (https://gist.github.com/omo/9986103), AMD stili DI ve HTML içe aktarımları arasındaki tradeoffları anlamak için son derece yararlı buldum (tl; requirejs'nin yapabildiği bir üst sıraya geçmek) – Renaud

İlgili konular