2013-03-31 18 views
5

Ben bundan değiştirebilir böylece tüm eklentileri birleştirmek çalışıyorum: BunaJS dosyalarını düzenleyin ve birleştirin, Google Closure?

<html> 
    <head> 
    </head> 
    <body>  
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
     <script src="js/plugin1.js"></script> 
     <script src="js/plugin2.js"></script> 
     <script src="js/plugin3.js"></script> 
     <script src="js/plugin4.js"></script> 
    </body> 
</html> 

: ana fikri bir araca sahip olmaktır

<html> 
    <head> 
    </head> 
    <body>  
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
     <script src="js/plugins.min.js"></script> 
    </body> 
</html> 

içine "otomatik ithalat" ile benim plugins.js benim web siteleri için ihtiyaç duyduğum tüm eklentileri dosyalayıp derlerken bunları küçültün. Google Closure ile test ettim (derleyicinin indirilebilir Java sürümü) ve dosyaları küçültmeyi düşündüm ancak harici dosyaları alamıyorum. Bu yüzden, Google Closure'ın aradığım araç olup olmadığını veya başka bir araç ya da yöntem kullanmamı isteyip istemediğini size söyleyebilir miyim? "Otomatik ithalat" ile

ben gibi bir şey demek:

eklentileri/HELLO.JS

function hello(name) { 
    alert('Hello, ' + name); 
} 

PLUGINS.JS Ben yeterince açık umut

@import hello.js 
hello('New user'); 

, ben eğer özür dilerim İngilizcemi karıştırdım.

Teşekkürler!

+0

https://code.google.com/p/closure-compiler/wiki/ManageClosureDependencies adresine göz atmak isteyebilirsiniz Tabii ki, –

cevap

0

Bunu optimizasyon olanakları ile require.js

+6

require.js otomatik bağımlılık yönetimini çözer. Her zaman en uygun strateji, çünkü her betiğin yüklenmesi için bir isteğe ihtiyaç duyması nedeniyle çok sayıda istek tutuyor (AFAIK, bundan emin değilim). Taleplerin sayısını en aza indirmek için tüm javascriptleri otomatik olarak bir araya getirme olanağı var mı? – Richard

1

Kapatma-derleyici tam olarak ne istediğinizi yapabilir, ancak yalnızca goog.require çağrıları nedeniyle Kapatma kitaplığı kodu ile yapabilirsiniz. JQuery kodu ile yapabileceğiniz en iyi şey, eklentilerinizin tümünü tek bir dosyada bir araya getirmektir, ancak gerçek kullanımı hesaba katmaz.

Maalesef, genel olarak kod için bunu yapacak hiçbir şey bilmiyorum.

Not: Bu sorunun kabul edilen yanıtı olması beklenmemektedir. Özellikle Closure-derleyicisi hakkında sorulan soru ve en azından bir yerde derleyicinin istenildiği gibi çalışmayacağı belirtildi.

5

Kendime aynı soruyu sordum ve kabul edilebilir bir yanıt bulamadım.

// ==ClosureCompiler== 
// @code_url 1.js 
// @code_url 2.js 
// @code_url 3.js 
// ==/ClosureCompiler== 

: I (Kapatma Derleyici servis arayüzünde kullanılan) böyle koymak hatları çalıştı

java -jar compiler.jar --js 1.js --js 2.js --js 3.js --js_output_file all.js 

: Birçok dosyaları katılmak için tek yolu komut satırında birden "--js" params koyarak ... "main.js" içinde ve derleme - hiçbir etkisi yoktur. :(

İlgili konular