Cordova 5.0.0: Welche Dateien soll ich für git festlegen?


89

Ich benutze Cordova 5.0.0 und habe folgende Projektstruktur:

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml

Meine Frage lautet nun: Welchen dieser Ordner kann ich weglassen? Ich frage es, weil ich auf drei verschiedenen Plattformen arbeite. Ich entwickle unter Linux für Android, Windows für Windows Phone und Mac für iOS. Wenn ich das gesamte Projekt festschreibe, erhalte ich immer Warnungen und Fehler für die nicht unterstützten Plattformen.

Was ich will, ist ein minimalistisches Git-Repository.

Ein Problem sind zum Beispiel die Plugins. Wenn ich den Plugin-Ordner aus dem Repository lösche, muss ich sie manuell auf jeder meiner Entwicklungsplattformen hinzufügen.

Ein weiteres Problem ist der Ressourcenordner. Ich generiere automatisch Symbole und Begrüßungsbildschirme mit ionic. Wenn ich jetzt versuche, das Projekt auf ios aufzubauen, beschwert es sich über die Bilder für Android.

Was brauche ich also und was kann ich weglassen?

Antworten:


122

Sie können die Plattformen und Plugins-Verzeichnisse ignorieren, solange Sie keinen benutzerdefinierten Code hinzugefügt haben.

Wenn Sie Plugins und Plattformen hinzufügen, fügen Sie dem Befehl --save hinzu. z.B

cordova platform add ios@3.8.0 --save

oder

cordova plugin add cordova-plugin-device --save

Dadurch wird eine Aufzeichnung der von Ihnen verwendeten Plugins und Plattformen in Ihrer Datei config.xml gespeichert. Wenn Sie ausführen cordova prepareoder cordova buildalle in config.xml aufgeführten Plugins und Plattformen installiert werden, sofern dies noch nicht geschehen ist.

Sie können auch eine Plattform zum Vorbereiten und Erstellen angeben. Wenn Sie also auf Ihrem Mac arbeiten, können Sie das Git-Repository überprüfen und ausführen cordova prepare ios, um nur die ios-Plattform und die Plugins zu installieren.


Dies funktioniert auch für vorhandene Plugins und Plattformen. Cordova ignoriert die Neuinstallation einfach, fügt das Plugin jedoch der Konfigurationsdatei hinzu.
Rnevius

4
cordova buildPlattformen nicht wiederhergestellt, aber cordova prepareauf Cordova 6.0.
Victor Sergienko

42
Wenn Sie --savePlattformen und Plugins vergessen haben , verwenden Sie einfach cordova platform saveund cordova plugin save(Hinweis Nr. --), Und es werden die entsprechenden Zeilen zu Ihrem hinzugefügt config.xml.
JCaron

1
das hat gut funktioniert, platformsaber nicht für plugins. cordova preparewürde zumindest nicht mit plugin.xmlund arbeiten src. Ich gab auf und rettete einfach alles pluginszu git.
Jayen

6
Ab Cordova 7.0.0 wurde das Standardverhalten in Speichern geändert. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit

42

Das hängt von den Plattformen ab.

Sie können dieses Beispiel von .gitignore verwenden und an Ihre Bedürfnisse anpassen.

# Mac
.DS_Store

# iOS
platforms/ios/build/
platforms/ios/www/
platforms/ios/cordova/console.log
*.xcuserdatad

# android
platforms/android/assets/www
platforms/android/bin
platforms/android/gen
platforms/android/local.properties
platforms/android/ant-build
platforms/android/ant-gen
platforms/android/CordovaLib/ant-build
platforms/android/CordovaLib/ant-gen
platforms/android/CordovaLib/bin
platforms/android/CordovaLib/gen
platforms/android/CordovaLib/local.properties

# wp8
platforms/wp8/bin
platforms/wp8/obj
platforms/wp8/www
platforms/wp8/.staging
platforms/wp8/*.suo
platforms/wp8/*.csproj.user

# res
resources/signing

Wäre es nicht sinnvoll, auch Plattformen / Android / Res zu ignorieren? AFAIK / Undernad, diese werden während des Erstellungsprozesses erstellt (aus dem Ordner res / resources im übergeordneten Verzeichnis (Projekt)).
Tomer Cagan

4
Ich konnte platforms/*/mit Cordova 6.3.0 ignorieren und cordova prepareauf den anderen Systemen eine machen.
Jayen

Diese Ignorierdatei scheint viele generierte Dateien zu enthalten, daher muss sie meiner Meinung nach enger sein.
Anders Lindén

1
Sollte es auch enthalten node_modules? Ich tat.
Cameron A. Ellis

@ CameronA.Ellis habe ich auch node_modulesnicht. Hast du es hinzugefügt? Gibt es keine Möglichkeit, diese Knotenmodule herunterzuladen?
Wviana

18

Sie können die Plattform und das Plugin anschließend mit den folgenden Befehlen speichern.

Plattformmassensparen

$ cordova platform save

Plugins Massensparen

$ cordova plugin save

Bitte beachten Sie, dass oben keine Befehle vorhanden sind

Eine weitere Sache: Nachdem Sie Repo auf einem anderen Computer abgerufen haben, führen Sie einfach den folgenden Befehl aus, um Plugins und Plattformen automatisch zu generieren und abzurufen

$ cordova prepare

Weitere Informationen finden Sie unter den folgenden Links. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Cordova-Tipp : Lesen Sie vor allem anderen die offiziellen Dokumente, um die richtige Lösung zu finden.



4

Die meisten anderen Antworten sind 2/3 Jahre alt.

Update 2019:

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

# ========== Cordova - platforms
# android
# platforms/android/app/src/main/assets
# platforms/android/app/src/main/AndroidManifest.xml
# platforms/android/app/src/main/res/drawable-*
# platforms/android/app/src/main/res/mipmap-*
# platforms/android/app/src/main/res/xml/config.xml
# browser
# platforms/browser/app/src/main/assets
# platforms/browser/config.xml
# platforms/browser/www
#
# ========== Cordova - plugins - remove all except json & xml
# plugins/**/.DS_Store
# plugins/**/*.cs
# plugins/**/*.h
# plugins/**/*.java
# plugins/**/*.js
# plugins/**/*.m
# plugins/**/*.map
# plugins/**/*.md
# plugins/**/*.modulemap
# plugins/**/*.ts
# plugins/**/LICENSE
# plugins/**/NOTICE
# plugins/**/*.gradle
# plugins/**/tests/

Wie Sie sehen können, habe ich die meisten Zeilen kommentiert (alle Zeilen beginnen mit #). Dies liegt daran, dass ich Probleme mit Änderungen der Plugin-Version hatte und mich entschied zu wissen, was mit Plugin-Updates passiert. Im Wesentlichen sind alle Plattform- und Plugin-Dateien in Commit enthalten, jetzt ist mein Leben friedlich.

2019:
Ich mit angegeben diesem .

Nach dem Entwickeln und Veröffentlichen der App wurde es unten:
(Wenn Sie von unten abweichen, Kommentar unten, können wir voneinander lernen)

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# Cordova - platforms
platforms

# Cordova - plugins - remove all except json & xml
plugins/**/.DS_Store
plugins/**/*.cs
plugins/**/*.h
plugins/**/*.java
plugins/**/*.js
plugins/**/*.m
plugins/**/*.map
plugins/**/*.md
plugins/**/*.modulemap
plugins/**/*.ts
plugins/**/LICENSE
plugins/**/NOTICE
plugins/**/*.gradle
plugins/**/tests/

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

1
Sie können einfach tun plugins/*dann !plugins/**/*.jsonund!plugins/**/*.xml
Z. Khullah

Ich habe auch gesehen, dass geraten wurde, die
Paketsperre

@ z-khullah In dem bereitgestellten Link wird "Optional zum Ignorieren von Plugin-Git-Klonen" angegeben, da wir manchmal den Code in ihnen ändern und daher nicht alle Dateien ignorieren können. Im Idealfall können wir ignorieren, aber es gibt Online-Vorschläge aufgrund der Probleme in Plugins, vor allem als Neuling in Cordova wird es helfen. Die Paketsperre ändert jedes Mal 10 oder 20 Zeilen, wenn sich ein Plugin installiert. Daher möchten wir die Codeüberprüfung auch nicht überprüfen. Wenn Sie die Sperrdatei ändern, haben wir bis jetzt keine Probleme. Sie wird aus dem Paket generiert. json. Hoffe, das hilft, unsere Perspektive zu geben.
Manohar Reddy Poreddy

Ja, aber das Muster macht dasselbe, nur mit weniger Linien. Was die Paketsperre betrifft, hilft es beim Debuggen, da es die genaue node_modules-Struktur anzeigt, aber ja, ich denke, es ist optional
Z. Khullah


3

Ich habe diese Schritte befolgt:

  • Cordova-Projekt erstellen

  • Plattformen hinzufügen

  • Plugins hinzufügen

Vor dem Erstellen des Projekts schreibe ich generierte Dateien fest und pushe sie. Nachdem ich ein Projekt erstellt und nach neuen generierten Dateien gesucht habe. Ich habe diese in .gitignore hinzugefügt:

/platforms/android/gradlew.bat

/ platform / android / build

/ platform / android / gradle

/ platform / android / libs

/platforms/android/gradlew.bat

/ platform / android / CordovaLib / build

/platforms/android/.gradle


0

Ich füge der Niko-Liste hinzu:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

und

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt

2
Diese sind im Allgemeinen gut zu ignorieren und nicht spezifisch für Cordova (wie auch .DS_Storenicht in Nikos Antwort).
Jari Keinänen

Diese sollten wahrscheinlich in einem globalen Gitignore behandelt werden , nicht auf Projektebene.
Bdesham
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.