Cordova 5.0.0: Które pliki powinienem przekazać do git?

89

Używam Cordova 5.0.0 i mam następującą strukturę projektu:

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

Moje pytanie brzmi: które z tych folderów mogę pominąć? Pytam, ponieważ pracuję na trzech różnych platformach. Tworzę na Linuksie dla Androida, Windowsie dla Windows Phone i Mac dla iOS. Jeśli zatwierdzę cały projekt, zawsze otrzymuję ostrzeżenia i błąd dla nieobsługiwanych platform.

To, czego chcę, to minimalistyczne repozytorium git.

Jednym z problemów są na przykład wtyczki. Kiedy usuwam folder wtyczek z repozytorium, muszę dodać je ręcznie na każdej mojej platformie deweloperskiej.

Innym problemem jest folder zasobów. Automatycznie generuję ikony i ekrany powitalne za pomocą jonowego. Kiedy teraz próbuję zbudować projekt na iOS, narzeka na obrazy dla Androida.

Czego więc potrzebuję, a co mogę pominąć?

Mulgard
źródło

Odpowiedzi:

121

Możesz zignorować katalogi platform i wtyczek, o ile nie dodałeś do nich żadnego niestandardowego kodu.

Dodając wtyczki i platformy dodaj --zapisz do polecenia. na przykład

cordova platform add [email protected] --save

lub

cordova plugin add cordova-plugin-device --save

Spowoduje to zapisanie używanych wtyczek i platform w pliku config.xml. Po uruchomieniu cordova preparelub cordova buildwszystkie wtyczki i platformy wymienione w config.xml zostaną zainstalowane, jeśli jeszcze nie zostały.

Możesz również określić platformę w przygotowaniu i kompilacji. Więc jeśli jesteś na komputerze Mac, możesz sprawdzić repozytorium git i uruchomić, cordova prepare iosaby zainstalować tylko platformę ios i wtyczki.

Connor
źródło
Działa to również w przypadku istniejących wtyczek i platform. Cordova po prostu zignoruje ponowną instalację, ale doda wtyczkę do pliku konfiguracyjnego.
rnevius
4
cordova buildnie przywrócił platform, ale cordova preparezrobił to na Cordovie 6.0.
Victor Sergienko
43
Jeśli zapomniałeś o --saveplatformach i wtyczkach, po prostu użyj cordova platform savei cordova plugin save(uwaga nie --), a doda odpowiednie linie do twojego config.xml.
jcaron
1
to działało dobrze, platformsale nie dla plugins. cordova preparenie działałby z przynajmniej plugin.xmli src. poddałem się i po prostu zaoszczędziłem wszystko pluginsna git.
Jayen
7
od wersji Cordova 7.0.0 domyślne zachowanie zostało zmienione na zapisywanie. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit
42

To zależy od platform.

Możesz użyć tego przykładu .gitignore i dostosować do swoich potrzeb.

# 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
Niko
źródło
czy nie miałoby sensu ignorowanie także platform / android / res? AFAIK / undernad, są one tworzone podczas procesu kompilacji (z folderu res / resources w katalogu nadrzędnym (projektu)).
Tomer Cagan,
4
udało mi się zignorować platforms/*/z cordova 6.3.0 i zrobić cordova preparena innych systemach.
Jayen
Ten plik ignorowania wydaje się zawierać wiele wygenerowanych plików, więc myślę, że musi być węższy.
Anders Lindén
1
Czy powinien również zawierać node_modules? Zrobiłem.
Cameron A. Ellis
@ CameronA.Ellis, mam node_modulesteż. Dodałeś to? Czy nie ma sposobu, aby pobrać te moduły węzłów.
wviana
18

Możesz później zapisać platformę i wtyczkę, używając następujących poleceń.

oszczędność masy platformy

$ cordova platform save

Masowe oszczędzanie wtyczek

$ cordova plugin save

Należy pamiętać, że nie ma - w powyższych poleceniach

Jeszcze jedno, po pobraniu repozytorium na innym komputerze po prostu uruchom następujące polecenie, aby automatycznie wygenerować i pobrać wtyczki i platformy

$ cordova prepare

Aby uzyskać więcej informacji, odwiedź poniższe linki. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Wskazówka dotycząca Cordova : zawsze zapoznaj się z oficjalną dokumentacją zanim cokolwiek innego, aby znaleźć właściwe rozwiązanie.

Hitesh Chavda
źródło
4

Większość pozostałych odpowiedzi ma 2/3 lata.

Aktualizacja 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/

Jak widać, skomentowałem większość wierszy (wszystkie zaczynają się od #). Dzieje się tak, ponieważ napotkałem problemy ze zmianami wersji wtyczek i postanowiłem wiedzieć, co się dzieje z aktualizacjami wtyczek. Zasadniczo wszystkie pliki platformy i wtyczki są zawarte w zatwierdzeniu, teraz moje życie jest spokojne.

2019:
Stwierdziłem z tym .

Po opracowaniu i opublikowaniu aplikacji stało się to poniżej:
(Jeśli odejdziesz od poniżej, komentarz poniżej, możemy się uczyć od siebie nawzajem)

# 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
Manohar Reddy Poreddy
źródło
1
Można po prostu zrobić plugins/*następnie !plugins/**/*.jsoni!plugins/**/*.xml
Bernardo dal Corno
widziałem również, że radzono nie ignorować blokady paczek
Bernardo Dal Corno
@ z-khullah w podanym linku, podana jest opcja „Opcjonalne ignorowanie klonów Git wtyczki”, ponieważ czasami zmieniamy w nich kod, więc nie możemy zignorować wszystkich plików. Idealnie możemy zignorować, ale są sugestie online ze względu na problemy z wtyczkami, zwłaszcza jako nowicjusz w cordova, pomoże. blokada pakietu zmienia 10 lub 20 sekund linii za każdym razem, gdy zmienia się instalacja wtyczki, więc jest to również coś, czego nie chcemy przeglądać kodu, również ignorując plik blokady, do tej pory nie mieliśmy żadnych problemów, jest on generowany z pakietu. json. Mam nadzieję, że pomoże to w przedstawieniu naszej perspektywy.
Manohar Reddy Poreddy
Tak, ale wzór robi to samo, tylko z mniejszą liczbą linii. Jeśli chodzi o blokadę pakietów, pomaga debugować, ponieważ pokazuje dokładną strukturę node_modules, ale tak, myślę, że jest opcjonalna
Bernardo Dal Corno
1
@ManoharReddyPoreddy stackoverflow.com/questions/44206782/…
Sztolnia Saxena
3

Wykonałem następujące kroki:

  • stwórz projekt cordova

  • dodaj platformy

  • dodaj wtyczki

Przed kompilacją projektu zatwierdzam i wypycham wygenerowane pliki. Po zbudowaniu projektu i sprawdzeniu nowych wygenerowanych plików. Mam to do dodania w .gitignore:

/platforms/android/gradlew.bat

/ platform / android / build

/ platform / android / gradle

/ platform / android / libs

/platforms/android/gradlew.bat

/ platform / android / CordovaLib / build

/platforms/android/.gradle

Victor Hugo Calderon
źródło
0

Dodaję do listy Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

i

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
Cédric Dromzée
źródło
2
Generalnie dobrze jest je zignorować, nie są specyficzne dla Cordovy (jak również .DS_Storenie ma tego w odpowiedzi Niko).
Jari Keinänen
Prawdopodobnie należy się nimi zająć w globalnym gitignore , a nie na poziomie projektu.
bdesham