Właśnie próbowałem utworzyć nowy projekt phonegap 3.0 ... Uwaga: jestem nowy w phonegap. W każdym razie widzę, że folder projektu zawiera:
.cordova
merges
platforms
plugins
www
Próbowałem phonegap local run android
zobaczyć wiele plików binarnych / wygenerowanych w formacie platforms/android
. Zastanawiam się, jakie części tej struktury folderów powinienem dodać do mojego repozytorium git. Normalnie zatwierdzanie plików binarnych byłoby wyjątkowo złą praktyką. Stąd chciałbym dodać wzory jak zwykle bin/
, obj/
, *.o
, *.pyc
itd., Aby .gitignore
uniknąć zanieczyszczających mojego repozytorium git tylko z rzeczy, które służy do tworzenia konfliktów seryjnej.
Na pewno www
powinien zostać dodany do gita, ale co z pozostałymi częściami projektu. W jakim stopniu są to produkty kodu źródłowego, aw jakim konfiguracji projektu?
Co robisz? Zgoda, jestem nowy, więc ledwo rozumiem, co ma tutaj sens ...
Odpowiedzi:
Odpowiedź zależy od platformy, na której tworzysz aplikację phongap i od tego, czy postępujesz zgodnie ze standardową strukturą katalogów.
Jeśli struktura katalogów twojego projektu jest standardowa, możesz zacząć od tego gitignore i zmodyfikować ją do swoich potrzeb.
Zasadniczo należy wykluczyć wszystkie wygenerowane pliki, takie jak katalogi
bin/
igen/
. Jeśli tworzysz wersję swojej aplikacji na Androida, powinieneś również wykluczyć pliki kompilacji*.apk
.Wszystkie wygenerowane pliki w
android
podkatalogu również powinny zostać wykluczone:źródło
Rozwinięcie odpowiedzi @Jake Moshenko:
Podoba mi się pomysł pominięcia
platforms
katalogu. W rzeczywistości jestem w stanie wykluczyć zarówno katalogi, jakplugins
iplatforms
. Dobry punkt wyjścia do.gitignore
:Problem polega na tym, że czysta kopia repozytorium musi zostać zainicjowana, zanim będzie można z nią pracować. Sensowne może być utworzenie skryptu inicjującego, takiego jak:
Zastrzeżeniem dla tego podejścia jest to, że nieco trudniej jest dostosować kod / konfigurację aplikacji specyficzną dla platformy poza tym, co jest obsługiwane przez phonegap / cordova (tj. Obsługa orientacji ekranu).
Aktualizacja: Bash Gist
Ta treść zawiera bardziej kompletny skrypt do obsługi projektu, który nie zatwierdza katalogów
plugins
iplatforms
. Zapewnia mechanizm kopiowania ikon i obrazów ekranu startowego z www do katalogów platformy (dla iOS i Android), instalowania wtyczek i obsługi plików specyficznych dla platformy, które powinny być dodane do kontroli wersji.Aktualizacja: Grunt Gist
Oto kolejna istota, która jest portem Grunt wspomnianego powyżej skryptu bash. (Dzięki @obie za zasugerowanie chrząknięcia).
źródło
platform-merges
katalogu. Na przykład możesz zatwierdzićplatform-merges/android/AndroidManifest.xml
. Takie podejście sprawdza się dobrze w przypadku prostych projektów, ale może skomplikować sprawę w przypadku większych projektów.rm -rf platforms plugins
.Więc zrozumiałem to metodą prób i błędów.
platforms
Katalogu można pominąć, jeśli używasz PhoneGap budowanie lokalnego lub zdalnego, jak to jest generowane w locie. Wszystkie inne foldery, w tym folder ukryty,.cordova
są wymagane.źródło
.cordova
folderu - dlaczego mówisz, że jest to wymagane @Jake Moshenko?Chciałem tylko zostawić tutaj moje doświadczenia z tym problemem i podejście, które ostatecznie przyjęliśmy.
W naszym projekcie phonegap zaczęliśmy zatwierdzać wszystkie pliki bez folderu / platformy przy użyciu pliku .gitignore. Pomyśleliśmy w ten sposób, gdy programista sklonował repozytorium, jedyną czynnością, jaka pozostała do wykonania, jest wykonanie:
phonegap / cordova dodaj platformę
Ale tak nie było. Po dodaniu platformy i próbie kompilacji pojawił się błąd i aplikacja nie została zainstalowana na urządzeniu.
Przeglądając dzienniki, otrzymaliśmy kilka trafień, że ten błąd był spowodowany wtyczkami. Postanowiliśmy więc ponownie zainstalować wszystkie wtyczki, których używaliśmy w projekcie, i voilá aplikacja działała poprawnie.
Więc radzę zapisać w repozytorium całą zawartość, bez platformy folderów i wtyczek. Utwórz i wgraj do repozytorium plik README z listą wtyczek użytych w projekcie.
W ten sposób, gdy programista sklonuje repozytorium, będzie musiał:
1.- Dodaj platformy: phonegap / cordova dodaj platformę „platforma”
2. - Dodaj wtyczki: phonegap / cordova plugin dodaj „plugin”
Mam nadzieję że to pomoże!
Pozdrowienia.
źródło
Wiele z tych rzeczy jest starych i tak naprawdę nie ma zastosowania do najnowszej wersji Apache Cordova. Używam Apache Cordova 5.1.1, a to .gitignore pozwala mi nadal dostosowywać za pomocą niestandardowych ikon itp., Jednocześnie blokując wszystkie rzeczy, których nie potrzebujemy do wersji dla Androida i IOS. Tak .gradle jest używany, więc nie usuwaj go!
źródło
www/
folder? W mojej aplikacji była to większość przydatnych rzeczy z życia aplikacji internetowych.www/
ponieważ zawartość generowana przez niestandardowe skrypty budowania. Naprawdę nie chcesz tam plików źródłowych.Chociaż jest to nieco osobiste preferencje, zdecydowałem się na to (dla projektu tylko dla Androida). Usunięcie większości, ale zachowanie tego, co niestandardowe
źródło