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.