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
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
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
Puoi usare il plugin optimizer .js. –