2013-05-04 14 views
12

Köşeli bir proje oluşturmak için Yeoman (v1.x) öğesini grunt (v0.4.2) ile kullanıyorum. build görev benim app/script JS dosyalarına birleştirir, ancak unconcatenated benim bağımlılık tüm dosyaları bırakır, böylece benim yapılı index.html bu çağrı yapar:Tüm satıcı javascript dosyalarını birleştirmek için grunt kullanma?

<script src="components/angular-unstable/angular.js"></script> 
<script src="components/jquery/jquery.js"></script> 
<script src="components/angular-resource/angular-resource.js"></script> 
<script src="components/bootstrap/js/bootstrap-dropdown.js"></script> 
<script src="components/moment/moment.js"></script> 
<script src="components/underscore/underscore.js"></script> 

<!-- xxxxxbuild:js scripts/scripts.js --> 
<script src="scripts/274baf7d.scripts.js"></script> 
benim proje kullanır bileşenler yani tüm istiyoruz

angular.js, jquery.js, ve benzeri, scripts.js. GruntFile'ı bunu yeniden yapılandırmak çok kolay mı? Veya bu pratik bir sebepten dolayı varsayılan olarak yapılmıyor mu?

+0

Evet Aynı soruya sahibim, neden bu varsayılan olarak kaldı? Yaygın CDN'leri kullanırsanız ne olur, bunların birleştirilmemesi gerektiği anlamına mı gelir? Ayrıca modernizr gibi şeyler hakkında ne? Birbirleriyle birleştirilemezler çünkü sayfanın üst kısmında olması gerekir. – CMCDragonkai

cevap

13

Evet, bu yapılandırması kolaydır. Sadece satıcılar komut dosyalarını concat görevini ilettiğiniz kaynaklara ekleyin.

// Project configuration. 
grunt.initConfig({ 
    concat: { 
    dist: { 
     src: ['vendors/**/*.js', 'scripts/**/*.js'], 
     dest: 'built.js' 
    } 
    } 
}); 
+0

Merak ediyorum: Gereken kayıtlara dayalı olarak browserify'nin birleştirme yapmasını biliyorum. Bu, hile ile işlevselliğin bir çakışma mı, yoksa farklı kullanım durumları mı var? – Jonah

+1

Eh, Grunt sadece bir görev koşucusu. Birbirine bağlılığı veya tarayıcıyı herhangi bir şekilde anlayamaz. Birleştirme görevi bir Grunt eklentisidir. Bir Grunt eklentisi sadece komut satırından arayabileceğiniz kayıtlı bir görevdir. Yani, Browserify ile, sadece browserify grunt eklentisini kullanır ve iş akışınıza eklersiniz - ve sonra herhangi bir birleştirme görevine ihtiyacınız olmaz. Benim açımdan, RequireJs'i kullandığım ve Grunt eklentisi ile birleştirme işlemini kendim halledemediğim için asla bir görev kullanmıyorum. –

+0

Açıklama için teşekkürler – Jonah

İlgili konular