2014-09-26 11 views
37

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

+4

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

+0

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

+0

Sie können mit require.js Optimizer-Plugin gehen. –

Antwort

1

Minifizierung tut Verbesserung der Leistung aus zwei Gründen:

Reduzierte Dateigröße (weil es Kommentare und unnötiges weiß-Leerzeichen entfernt), so wird Ihr Skript schneller geladen. Auch wenn es in die eingebettet ist.

Es wird schneller analysiert, da Kommentare und Leerzeichen nicht explizit ignoriert werden müssen (da sie nicht vorhanden sind).

ABER, es wird nur einen wirklichen Unterschied machen, wenn die Datei groß ist (2000 Zeilen oder mehr), wie jQuery. Es hat keinen Sinn, eine 20 Zeilen Datei zu verkleinern.

+0

Es könnte technisch "Leistung verbessern", aber es ist nicht etwas, das Sie bemerken können. –