2013-02-21 17 views
6

Ho il mio codice JavaScript diviso in pochi file, tutti utilizzando il modello di modulo (aggiornamento di una variabile globale, ad esempio MyApp, con nuove funzionalità e membri.Puoi minimizzare più file in uno?

Sarà possibile ridurre i file in uno e non rovinare il file Scopes

esempio voglio minify:

File1.js

var Module = (function(ns) { 

ns.fun1 = function() { alert('fun1'); }; 
return ns; 

})(Module || {}); 

File2.js

var Module = (function(ns) { 

ns.fun2 = function() { alert('fun2'); }; 
return ns; 

})(Module || {}); 
+3

Un rapido sh: 'cat one.js two.js tre. js | uglifyjs -m -c -o out.min.js' – elclanrs

+0

"Sarà possibile minimizzare i file in uno e non rovinare gli ambiti" beh, hai scritto il codice, minification non rovina gli ambiti, il tuo codice ... – mpm

+0

@elclanrs non ho questa applicazione 'uglifyjs', potresti pubblicare una risposta che mostri qual è il codice risultante? Forse è lo stesso di Google Closure? –

risposta

1

Sì, è possibile, ed è un buon modo di lavorare, per tutti, soprattutto se sono coinvolti più sviluppatori e in buona salute per l'applicazione.

Uso la classe Minify (http://code.google.com/p/minify/) con uno speciale file di configurazione (https://beat.snipt.net/minify-config-file-minify-each-folder-from-project-1-minified-file/) che esegue la scansione delle mie cartelle e crea per ogni sottocartella un file (JS o CSS). In questo modo posso creare file JS o CSS modulari, che possono essere divisi in classi o file regolari.

La chiave è l'ordine dei file, a seconda delle funzioni di lettura delle cartelle e il tipo di sistema operativo può essere diverso (ex php readdir vs scandir)

2

L'ambito globale è in realtà globale, nel senso che non importa se si sta cambiando da un file o più file. Tuttavia, l'ordine dei file può corrispondere a, a seconda dell'aspetto del modello di modulo che si sta utilizzando. Per una buona scrittura, anche per lo stato privato tra file, leggi: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth

Problemi correlati