Cordova 5.0.0: quali file devo impegnare in git?


89

Uso Cordova 5.0.0 e ho la seguente struttura del progetto:

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

La mia domanda ora è: quale di queste cartelle posso omettere? Lo chiedo perché lavoro su tre diverse piattaforme. Sviluppo su linux per android, windows per windows phone e su mac per ios. Se eseguo il commit dell'intero progetto, ricevo sempre avvisi ed errori per le piattaforme non supportate.

Quello che voglio è un repository git minimalista.

Un problema per esempio sono i plugin. Quando elimino la cartella dei plugin dal repository, devo aggiungerli manualmente su ciascuna piattaforma di sviluppo.

Un altro problema è la cartella delle risorse. Genero automaticamente icone e splashscreen usando ionic. Quando ora provo a creare il progetto su iOS, si lamenta delle immagini per Android.

Allora di cosa ho bisogno e cosa posso omettere?

Risposte:


122

Puoi ignorare le directory delle piattaforme e dei plug-in finché non hai aggiunto alcun codice personalizzato.

Quando si aggiungono plugin e piattaforme, aggiungere --save al comando. per esempio

cordova platform add ios@3.8.0 --save

o

cordova plugin add cordova-plugin-device --save

Questo salverà un record dei plugin e delle piattaforme che usi nel tuo file config.xml. Quando esegui cordova prepareo cordova buildtutti i plugin e le piattaforme elencati in config.xml verranno installati se non lo sono già stati.

Puoi anche specificare una piattaforma in preparazione e costruzione. Quindi, se sei sul tuo Mac, puoi controllare il repository git ed eseguire cordova prepare iosper installare solo la piattaforma iOS e i plugin.


Funziona anche per i plugin e le piattaforme esistenti. Cordova ignorerà semplicemente la reinstallazione, ma aggiungerà il plug-in al file di configurazione.
rnevius

4
cordova buildnon ha ripristinato le piattaforme, ma l'ha cordova preparefatto su Cordova 6.0.
Victor Sergienko

42
Se ti sei dimenticato di --savepiattaforme e plugin, usa cordova platform savee cordova plugin save(nota no --) e aggiungerà le linee pertinenti al tuo file config.xml.
jcaron

1
questo ha funzionato bene platformsma non per plugins. cordova preparenon funzionerebbe almeno con plugin.xmle src. Ho rinunciato e ho appena salvato tutto su pluginsgit.
Jayen

6
a partire da cordova 7.0.0 il comportamento predefinito è stato modificato in salvataggio. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit

42

Dipende dalle piattaforme.

Puoi utilizzare questo esempio di .gitignore e personalizzarlo in base alle tue esigenze.

# 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

non avrebbe senso ignorare anche piattaforme / android / res? AFAIK / understnad, questi vengono creati durante il processo di compilazione (dalla cartella res / resources nella directory padre (progetto)).
Tomer Cagan

4
sono stato in grado di ignorare platforms/*/con cordova 6.3.0 e fare un cordova preparesu altri sistemi.
Jayen

Questo file da ignorare sembra includere molti file generati, quindi deve essere più ristretto, credo.
Anders Lindén

1
Dovrebbe includere anche node_modules? L'ho fatto.
Cameron A. Ellis

@ CameronA.Ellis ne ho node_modules. L'hai aggiunto? Non c'è un modo per scaricare questi moduli del nodo.
wviana

18

Puoi salvare la piattaforma e il plugin in seguito utilizzando i seguenti comandi.

risparmio di massa della piattaforma

$ cordova platform save

Risparmio di massa dei plugin

$ cordova plugin save

Si prega di notare che non ci sono - nei comandi precedenti

Un'altra cosa, dopo aver recuperato il repo su un'altra macchina, esegui semplicemente il comando seguente per generare e recuperare automaticamente plugin e piattaforme

$ cordova prepare

Per ulteriori riferimenti, visitare i collegamenti seguenti. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Consiglio di Cordova : fai sempre riferimento ai documenti ufficiali prima di qualsiasi altra cosa per ottenere la soluzione giusta.



4

La maggior parte delle altre risposte hanno 2/3 anni.

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

Come puoi vedere ho commentato la maggior parte delle righe (tutte le righe che iniziano con #). Questo perché ho riscontrato problemi con le modifiche alla versione del plug-in e ho deciso di sapere cosa sta succedendo con gli aggiornamenti del plug-in. Essenzialmente tutti i file di piattaforma e plugin sono inclusi nel commit, ora la mia vita è tranquilla.

2019:
ho affermato con questo .

Dopo aver sviluppato e pubblicato l'app, è diventato di seguito:
(Se ti discosti dal basso, commenta di seguito, possiamo imparare gli uni dagli altri)

# 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
Puoi semplicemente fare plugins/*allora !plugins/**/*.jsone!plugins/**/*.xml
Z. Khullah

inoltre ho visto consigliato di non ignorare il blocco dei pacchetti
Z. Khullah

@ z-khullah nel collegamento fornito, viene fornito "Facoltativo per ignorare i cloni di Git del plugin" perché a volte cambiamo il codice in essi, quindi non possiamo ignorare tutti i file. Idealmente, possiamo ignorare, ma ci sono suggerimenti online a causa di problemi nei plugin, specialmente se sei un principiante di cordova, aiuterà. il blocco del pacchetto cambia 10 o 20 di righe ogni volta che un plug-in è installato, quindi anche questo è qualcosa che non vogliamo rivedere il codice, inoltre, rafforzando il file di blocco, non abbiamo avuto problemi fino ad ora, viene generato dal pacchetto. json. Spero che questo aiuti a dare la nostra prospettiva.
Manohar Reddy Poreddy

Sì, ma lo schema fa la stessa cosa, solo con meno righe. Per quanto riguarda il blocco dei pacchetti, aiuta il debug poiché mostra l'esatta struttura node_modules, ma sì, penso che sia opzionale
Z. Khullah


3

Ho seguito questi passaggi:

  • creare il progetto cordova

  • aggiungi piattaforme

  • aggiungere plugin

Prima di compilare il progetto, eseguo il commit e il push dei file generati. Dopo aver compilato il progetto e verificato la presenza di nuovi file generati. Ho questi da aggiungere in .gitignore:

/platforms/android/gradlew.bat

/ piattaforme / android / build

/ piattaforme / android / gradle

/ piattaforme / android / libs

/platforms/android/gradlew.bat

/ piattaforme / android / CordovaLib / build

/platforms/android/.gradle


0

Aggiungo alla lista Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

e

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

2
Questi sono generalmente buoni da ignorare, non specifici per Cordova (come .DS_Storenon è nemmeno nella risposta di Niko).
Jari Keinänen

Questi dovrebbero probabilmente essere affrontati in un gitignore globale , non a livello di progetto.
bdesham
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.