2013-03-31 7 views
5

Próbuję połączyć wszystkie moje wtyczki więc mogę zmienić z tego:Porządkuj i łącz pliki JS, 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> 

do tego:

<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> 

Główną ideą jest, aby mieć narzędzie do „Auto import” w moim Plik plugins.js zawiera wszystkie potrzebne wtyczki do moich stron internetowych, a także minimalizuje je podczas kompilacji. Testowałem z Google Closure (do pobrania wersja Java kompilatora) i wymyśliłem, jak minimalizować pliki, ale nie mogę importować plików zewnętrznych. Chciałbym Cię zapytać, czy możesz mi powiedzieć, czy Google Closure jest narzędziem, którego szukam, czy też powinienem użyć innego narzędzia lub metody.

Z "Auto import" mam na myśli coś takiego:

plugins/HELLO.JS

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

PLUGINS.JS

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

Mam nadzieję, że wyraziłem się jasno, przepraszam jeśli Zepsułem mój angielski.

Dzięki!

+0

Możesz zajrzeć pod https://code.google.com/p/closure-compiler/wiki/ManageClosureDependencies. –

Odpowiedz

0

Czasami warto spojrzeć na require.js

+6

require.js oczywiście rozwiązuje zautomatyzowane zarządzanie zależnościami, ale to może nie być zawsze optymalna strategia, ponieważ utrzymuje dużą liczbę żądań, ponieważ każdy skrypt potrzebuje jednego żądania do załadowania (AFAIK, nie jestem tego pewien). Czy istnieje możliwość automatycznego scalenia wszystkich javascriptów do jednego, aby zminimalizować liczbę żądań? – Richard

1

Kompilator zamykający może wykonać dokładnie to, co chcesz, ale tylko z kodem biblioteki zamknięcia, ponieważ korzysta z połączeń goog.require. Z kodem jQuery najlepiej można skompilować WSZYSTKIE wtyczki w jeden plik, ale nie uwzględniłoby to rzeczywistego użycia.

Niestety, nie wiem nic, co zrobi to dla kodu w ogóle.

Uwaga: Nie oczekuje się, że będzie to przyjęta odpowiedź na pytanie. Pytanie dotyczyło konkretnie kompilatora zamknięcia i chciałem się upewnić, że przynajmniej gdzieś stwierdzono, że kompilator nie będzie działał zgodnie z oczekiwaniami.

5

Zadałem sobie to samo pytanie i nie znalazłem żadnej akceptowalnej odpowiedzi. Jedynym sposobem, aby dołączyć wiele plików jest wprowadzenie wielu "--js" params w wierszu poleceń:

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

Próbowałem umieścić linie tak (które używane w Closure Compiler usług UI):

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

... w "main.js" i skompiluj go - bez efektu. :(

Powiązane problemy