Ich baue eine Cordova 3.5.0 Anwendung. Ich verwende grunt, um eine minimierte Web-App zu erstellen, dann verwende ich cordova CLI und cordova hooks, um ein plattformspezifisches Paket zu erstellen. Ich benutze mehr als 10 verschiedene Plugins, einige Cordova offizielle und einige benutzerdefinierte. Ich frage mich, wie ich die JS-Dateien von den Plugins mit meinen anderen 3rd-Party-Bibliotheken verketten und minimieren kann.Verketten und Reduzieren von Cordova/Phonegap Plugin-Dateien
Nach cordova prepare
Ausführung Ich sehe eine erzeugte cordova_plugins.js
-Datei mit folgendem Inhalt:
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
});
Ich weiß, wie eine einzelne Datei mit diesem Plugins minify und erzeugt aber nicht, wie der cordova Build-Prozess zu optimieren, alles zu bekommen Clobbers aus einer einzigen Datei, aber verschiedenen Paketen. Mein erster Gedanke ist alles, das Verfahren in einem AFTER_PREPARE Schritt erreicht werden soll, innerhalb des platforms/<platform>/assets/www
Ordners
Ich bin neugierig, warum Sie das Bedürfnis haben, Ihre Plugin-Dateien zu verketten/zu verkleinern. Sind sie wirklich so groß, dass sie die Größe Ihrer kompilierten Binärdatei drastisch erhöhen? Selbst mit einer anständig großen Codebase mit vielen Plugins hat keine meiner Cordova-Apps 10 MB gekratzt, was deutlich kleiner ist als bei jeder nativen App. – ejensler
Meine Frage kam nach der Diskussion durch diese Frage generiert: http://StackOverflow.com/Questions/10532376/minifying-Code-for-Phonegap-app/10703735#comment37498433_10703735. Siehe Wytze Kommentar – sgimeno
Sie können mit require.js Optimizer-Plugin gehen. –