2014-09-26 3 views
37

Sto costruendo un'applicazione Cordova 3.5.0. Uso Grunt per creare un'app web minificata, quindi utilizzo cordova CLI e cordova hook per creare un pacchetto specifico per la piattaforma. Uso più di 10 diversi plugin, alcuni di quelli ufficiali di Cordova e alcuni personalizzati. Mi chiedo come concatenare e minimizzare i file JS dai plugin con le mie altre librerie di terze parti.Concatena e calcola i file di plugin cordova/phonegap

Dopo l'esecuzione cordova prepare vedo un cordova_plugins.js file generato con il seguente contenuto:

cordova.define('cordova/plugin_list', function(require, exports, module) { 
module.exports = [ 
    { 
     "file": "plugins/org.apache.cordova.globalization/www/GlobalizationError.js", 
     "id": "org.apache.cordova.globalization.GlobalizationError", 
     "clobbers": [ 
      "window.GlobalizationError" 
     ] 
    }, 
    { 
     "file": "plugins/org.apache.cordova.globalization/www/globalization.js", 
     "id": "org.apache.cordova.globalization.globalization", 
     "clobbers": [ 
      "navigator.globalization" 
     ] 
    } 
]; 
module.exports.metadata = 
// TOP OF METADATA 
{ 
    "org.apache.cordova.globalization": "0.3.1" 
} 
// BOTTOM OF METADATA 
}); 

so come minify e generare un unico file con questi plugin, ma non il modo di modificare il processo di cordova costruzione per ottenere tutti clobbers da un singolo file ma diversi pacchetti. Il mio primo pensiero è tutto il processo deve essere realizzato in una fase AFTER_PREPARE, all'interno della cartella platforms/<platform>/assets/www

+4

Sono curioso del motivo per cui si sente il bisogno di concatenare/ridurre i file del plugin. Sono davvero così grandi da aumentare drasticamente le dimensioni del tuo binario compilato? Anche con un codebase decentemente grande con molti plugin, nessuna delle mie app Cordova ha nemmeno un graffio di 10mb, che è significativamente più piccolo di qualsiasi app nativa. – ejensler

+0

La mia domanda è arrivata dopo la discussione generata da questa domanda: http://stackoverflow.com/questions/10532376/minifying-code-for-phonegap-app/10703735#comment37498433_10703735. Vedi il commento di Wytze – sgimeno

+0

Puoi usare il plugin optimizer .js. –

risposta

1

Minification fa migliorare le prestazioni per due motivi:

ridotta dimensione dei file (perché rimuove commenti e inutili bianchi-spazi), quindi il tuo script verrà caricato più velocemente. Anche se è incorporato nel.

Viene analizzato più rapidamente, poiché i commenti e gli spazi bianchi non devono essere esplicitamente ignorati (poiché non ci sono).

MA, farà davvero la differenza se il file è grande (2000 righe o più), come jquery. Non è necessario minimizzare un file di 20 righe.

+0

Potrebbe tecnicamente "migliorare le prestazioni" ma non è qualcosa che si sarà in grado di notare. –