2013-03-31 7 views
5

Sto cercando di unire tutti i miei plugin modo che io possa cambiare da questo:Organizzare e unire file 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> 

a questo:

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

L'idea principale è quella di avere uno strumento per "importazione automatica" nel mio plugins.js file tutti i plugin che ho bisogno per i miei siti web e anche li minino durante la compilazione. Ho provato con Google Closure (versione Java scaricabile del compilatore) e ho capito come minimizzare i file, ma non posso importare file esterni. Quindi vorrei chiederti se potresti dirmi se Google Closure è lo strumento che sto cercando o se dovrei usare un altro strumento o metodo.

Con "importazione automatica" intendo qualcosa di simile:

plugins/HELLO.JS

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

PLUGINS.JS

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

Spero stato chiaro, mi scuso se Ho incasinato il mio inglese.

Grazie !!

+0

Si consiglia di dare un'occhiata a https://code.google.com/p/closure-compiler/wiki/ManageClosureDependencies. –

risposta

0

Si potrebbe voler dare un'occhiata a require.js

+6

require.js risolve la gestione automatica delle dipendenze, naturalmente. Ma questo potrebbe non essere strategia sempre ottimale, perché mantiene un numero elevato di richieste poiché ogni script richiede una richiesta di caricamento (AFAIK, non ne sono sicuro). C'è la possibilità di unire tutti i javascript in uno automaticamente, per minimizzare il numero di richieste? – Richard

1

Chiusura-compiler può fare esattamente quello che vuoi, ma solo con il codice libreria Closure a causa del suo utilizzo delle chiamate goog.require. Con il codice jQuery, il meglio che può fare è compilare TUTTI i plugin in un unico file, ma non prenderebbe in considerazione l'uso effettivo.

Sfortunatamente, non so nulla che lo faccia per codice in generale.

Nota: Questa non è la risposta accettata per la domanda. La domanda posta specificatamente sul compilatore Closure e volevo assicurarmi che almeno da qualche parte si affermasse che il compilatore non avrebbe funzionato come desiderato.

5

Mi sono posto la stessa domanda e non ho trovato risposta accettabile. solo modo per unire molti file è mettere più params "--js" nella riga di comando:

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

ho provato linee messo come questo (che era in servizio Closure Compiler UI):

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

... in "main.js" e compilarlo - nessun effetto. :(

Problemi correlati