Sie können dazu die Funktion "Zusammenführungen" in Cordova CLI verwenden. Stellen Sie sich vor habe ich ein Projekt, das wie folgt aussieht:
-rw-r--r-- 1 simon staff 1115 Mar 22 19:57 config.xml drwxr-xr-x 3 simon staff 102 Mar 17 21:47 hooks/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 platforms/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 plugins/ drwxr-xr-x 7 simon staff 238 Mar 21 13:11 www/
Mit meinem Anwendungscode alle in www, wie dies organisiert:
drwxr-xr-x 4 simon staff 136 Mar 24 12:42 css/ drwxr-xr-x 4 simon staff 136 Mar 21 13:11 img/ -rw-r--r-- 1 simon staff 1338 Mar 21 15:16 index.html drwxr-xr-x 4 simon staff 136 Mar 22 18:29 js/
Stellen Ich habe sowohl die Android- und iOS-Plattformen installiert und möchten etwas anderes auf jedem tun, ohne viel zu setzen:
if (device.platform === 'Android') { // Android specific code } else { // iOS specific, assuming we are only supporting iOS }
Art von Code in meiner Anwendung. Das skaliert auch nicht auf viele Plattformen (z. B. Windows und BB hinzufügen, und dann hast du jedes Mal mehr if/else oder eine switch-Anweisung).
Um damit zu helfen, kann Cordova CLI Code zusammenführen, und sucht nach einem Ordner der obersten Ebene namens Merges. Also einen von der im selben Ordner machen Sie Ihren config.xml in ist, so dass nun Projekt wie folgt aussieht:
-rw-r--r-- 1 simon staff 1115 Mar 22 19:57 config.xml drwxr-xr-x 3 simon staff 102 Mar 17 21:47 hooks/ drwxr-xr-x 4 simon staff 136 Mar 22 17:47 merges/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 platforms/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 plugins/ drwxr-xr-x 7 simon staff 238 Mar 21 13:11 www/
Dann erstellen:
merges/android merges/ios
Alles, was du da drin stecken erhalten kopiert in den plattformspezifischen www-Ordner und überschreibt Sachen im selben Pfad von deinem Hauptwww-Ordner, oder wird hinzugefügt, wenn es nichts von dem gleichen Namen/Pfad in www gibt.
Beispiel:
ls -lF merges/android/img total 16 [email protected] 1 simon staff 7626 Mar 21 13:23 logo.png
Dieses Bild logo.png nur www/img/logo.png für Android ersetzen. Ich kann das gleiche für iOS tun (füge merges/ios/img/logo.png hinzu) oder verwende das Standardbild (www/img/logo.png).
Dies kann für jede Art von Datei (JS/CSS/img/JSON/was auch immer), die Sie benötigen, auf einer Plattform spezifischen Basis getan werden.
Es ist nicht notwendig, ein Hook-Skript zu schreiben, damit dies funktioniert, das CLI führt es automatisch aus, wenn Sie cordova build für jede Plattform ausführen.
Dokumentation zu diesem Konzept ist in der Cordova CLI docs.
Nein, Sie können nicht, dass Sie unabhängig mit jeder Plattform arbeiten müssen. Was du gerade machst, ist nur der Weg. –
danke @jaydroider für Ihr Feedback, aber ich kann auch auf einige andere Vorschläge warten. – Naitik