Ich habe gerade versucht, ein neues Phonegap 3.0-Projekt zu erstellen ... Hinweis: Ich bin neu in Phonegap. Wie auch immer, ich sehe, der Projektordner enthält:
.cordova
merges
platforms
plugins
www
Und nachdem phonegap local run android
ich es versucht habe, sehe ich viele binäre / generierte Dateien in platforms/android
. Daher frage ich mich, welche Teile dieser Ordnerstruktur ich meinem Git-Repository hinzufügen soll. Normalerweise würde ich es als äußerst schlecht empfinden, Binärdateien festzuschreiben. Daher würde ich normalerweise hinzufügen Muster wie bin/
, obj/
, *.o
, *.pyc
etc. .gitignore
zu verschmutzen meine Git Repository mit den Dingen zu vermeiden , die nur Merge Konflikte zu schaffen dienen.
Sicherlich www
sollte git hinzugefügt werden, aber was ist mit den anderen Teilen des Projekts. Inwieweit handelt es sich um Produkte des Quellcodes und in welchem Umfang handelt es sich um Projektkonfigurationen?
Wie geht's? Zugegeben, ich bin neu und verstehe kaum, was hier Sinn macht ...
Antworten:
Die Antwort hängt davon ab, auf welchen Plattformen Sie die Phongap-App entwickeln und ob Sie der Standardverzeichnisstruktur folgen.
Wenn Ihre Projektverzeichnisstruktur Standard ist, können Sie von diesem Gitignore aus beginnen und ihn an Ihre Bedürfnisse anpassen .
Als Faustregel gilt, dass Sie alle generierten Dateien wie die Verzeichnisse
bin/
und ausschließen müssengen/
. Wenn Sie eine Android-Version Ihrer App entwickeln, sollten Sie Build-Dateien ebenfalls ausschließen*.apk
.Alle generierten Dateien im
android
Unterverzeichnis sollten ebenfalls ausgeschlossen werden:quelle
Erweitern von @Jake Moshenko Antwort:
Ich mag die Idee, das
platforms
Verzeichnis wegzulassen . Tatsächlich kann ich sowohl dasplugins
als auch dasplatforms
Verzeichnis ausschließen. Ein guter Ausgangspunkt für.gitignore
:Das Problem dabei ist, dass eine saubere Kopie des Repos initialisiert werden muss, bevor Sie tatsächlich damit arbeiten können. Es kann sinnvoll sein, ein Init-Skript zu erstellen, z.
Eine Einschränkung dieses Ansatzes besteht darin, dass es etwas schwieriger ist, den plattformspezifischen App-Code / die plattformspezifische Konfiguration außerhalb der von Phonegap / Cordova unterstützten Funktionen anzupassen (dh Unterstützung der Bildschirmausrichtung).
Update: Bash Gist
Diese Übersicht enthält ein vollständigeres Skript für die Bearbeitung eines Projekts, bei dem die Verzeichnisse
plugins
und nicht festgeschrieben werdenplatforms
. Es bietet einen Mechanismus zum Kopieren der Symbole und Begrüßungsbildschirme von www in die Plattformverzeichnisse (für iOS und Android), zum Installieren von Plugins und zum Behandeln plattformspezifischer Dateien, die der Versionskontrolle hinzugefügt werden sollten.Update: Grunt Gist
Hier ist ein weiterer Kern, der ein Grunt-Port des oben erwähnten Bash-Skripts ist. (Danke an @obie für das Grunzen).
quelle
platform-merges
Verzeichnis hinzu. Zum Beispiel könnten Sie festschreibenplatform-merges/android/AndroidManifest.xml
. Dieser Ansatz eignet sich gut für einfache Projekte, kann jedoch bei größeren Projekten zu Komplikationen führen.rm -rf platforms plugins
.Also habe ich das nur durch Ausprobieren herausgefunden. Das
platforms
Verzeichnis kann weggelassen werden, wenn Sie Phonegap Local oder Remote Build verwenden, da es im laufenden Betrieb generiert wird. Alle anderen Ordner, einschließlich des versteckten Ordners,.cordova
sind erforderlich.quelle
.cordova
Ihrer Information , es sieht so aus, als würde PhoneGap Build ohne den Ordner erstellt - warum ist es Ihrer Meinung nach bei Jake Moshenko erforderlich?Ich wollte nur meine Erfahrungen mit diesem Thema und dem Ansatz, den wir schließlich verfolgten, hier lassen.
In unserem Phonegap-Projekt haben wir begonnen, alle Dateien abzüglich des Ordners / der Plattform mithilfe der .gitignore-Datei festzuschreiben. Wir dachten so, wenn der Entwickler das Repository klont, bleibt nur noch Folgendes auszuführen:
phonegap / cordova Plattform hinzufügen
Aber es war nicht so. Sobald die Plattform hinzugefügt wurde und wir versuchten zu kompilieren, erschien ein Fehler und die App wurde nicht auf dem Gerät installiert.
Beim Durchsuchen der Protokolle haben wir einige Treffer erhalten, dass dieser Fehler auf Plugins zurückzuführen ist. Deshalb haben wir uns entschlossen, alle Plugins, die wir im Projekt verwendet haben, neu zu installieren und die App ordnungsgemäß auszuführen.
Mein Rat ist daher, den gesamten Inhalt abzüglich der Ordnerplattform und der Plugins im Repository zu speichern. Erstellen Sie eine README-Datei mit einer Liste der im Projekt verwendeten Plugins und laden Sie sie in das Repository hoch.
Auf diese Weise muss ein Entwickler, wenn er das Repository klont, Folgendes tun:
1.- Fügen Sie die Plattformen hinzu: phonegap / cordova Plattform hinzufügen "Plattform"
2.- Addiere die Plugins: Phonegap / Cordova Plugin füge "Plugin" hinzu
Hoffe das hilft!
Grüße.
quelle
Viele dieser Dinge sind alt und gelten nicht wirklich für die neueste Version von Apache Cordova. Ich verwende Apache Cordova 5.1.1 und dieser .gitignore ermöglicht es mir, weiterhin benutzerdefinierte Symbole usw. anzupassen, während alle Dinge blockiert werden, die wir nicht für Android und IOS versionieren müssen. Ja .gradle wird verwendet, entfernen Sie es also nicht!
quelle
www/
Ordner dort einfügen? In meiner Anwendung waren dies tatsächlich die meisten nützlichen Dinge aus dem Leben der Webanwendung.www/
weil die Inhalte von benutzerdefinierten Build-Skripten generiert werden. Sie wollen dort nicht wirklich Quelldateien.Obwohl es etwas persönliche Vorlieben sind, habe ich mich dafür entschieden (für ein Android-Projekt). Die meisten entfernen, aber die Gewohnheit beibehalten
quelle