Cordova 5.0.0: Quels fichiers dois-je valider dans git?

89

J'utilise Cordova 5.0.0 et j'ai la structure de projet suivante:

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

Ma question est maintenant: Lequel de ces dossiers puis-je omettre? Je le pose car je travaille sur trois plates-formes différentes. Je développe sur Linux pour Android, Windows pour Windows Phone et sur Mac pour iOS. Si je commets l'ensemble du projet, j'obtiens toujours des avertissements et des erreurs pour les plates-formes non prises en charge.

Ce que je veux, c'est un référentiel git minimaliste.

Un problème par exemple, ce sont les plugins. Lorsque je supprime le dossier de plugins du référentiel, je dois les ajouter manuellement sur chacune de mes plates-formes de développement.

Un autre problème est le dossier des ressources. Je génère automatiquement des icônes et des écrans anti-éclaboussures en utilisant ionic. Quand j'essaye maintenant de construire le projet sur ios, il se plaint des images pour Android.

Alors, de quoi ai-je besoin et que puis-je omettre?

Mulgard
la source

Réponses:

122

Vous pouvez ignorer les répertoires des plates-formes et des plugins tant que vous n'y avez pas ajouté de code personnalisé.

Lorsque vous ajoutez des plugins et des plates-formes, ajoutez --save à la commande. par exemple

cordova platform add [email protected] --save

ou

cordova plugin add cordova-plugin-device --save

Cela enregistrera un enregistrement des plugins et des plates-formes que vous utilisez dans votre fichier config.xml. Lorsque vous exécutez cordova prepareou cordova buildtous vos plugins et plates-formes répertoriés dans config.xml seront installés s'ils ne l'ont pas déjà été.

Vous pouvez également spécifier une plate-forme dans la préparation et la construction. Donc, si vous êtes sur votre Mac, vous pouvez consulter le référentiel git et exécuter cordova prepare iospour installer uniquement la plate-forme ios et les plugins.

Connor
la source
Cela fonctionne également pour les plugins et les plates-formes existants. Cordova ignorera simplement la réinstallation, mais ajoutera le plugin au fichier de configuration.
rnevius
4
cordova buildn'a pas restauré les plates-formes, mais l'a cordova preparefait sur Cordova 6.0.
Victor Sergienko
42
Si vous avez oublié les --saveplates-formes et les plugins, utilisez simplement cordova platform saveet cordova plugin save(note non --), et il ajoutera les lignes pertinentes à votre config.xml.
jcaron
1
cela a bien fonctionné pour platformsmais pas pour plugins. cordova preparene fonctionnerait pas au moins avec plugin.xmlet src. J'ai abandonné et j'ai tout sauvé pluginsdans git.
Jayen
6
à partir de cordova 7.0.0, le comportement par défaut a été changé en enregistrement. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit
42

Cela dépend des plates-formes.

Vous pouvez utiliser cet exemple de .gitignore et personnaliser selon vos besoins.

# 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
la source
ne serait-il pas logique d'ignorer également les plates-formes / android / res? AFAIK / comprnad, ceux-ci sont créés pendant le processus de construction (à partir du dossier res / resources dans le répertoire parent (projet)).
Tomer Cagan
4
j'ai pu ignorer platforms/*/avec cordova 6.3.0 et faire un cordova preparesur les autres systèmes.
Jayen
Ce fichier ignorer semble inclure beaucoup de fichiers générés, il doit donc être plus étroit, je pense.
Anders Lindén
1
Doit-il également inclure node_modules? J'ai fait.
Cameron A. Ellis
@ CameronA.Ellis Moi node_modulesnon plus. L'avez-vous ajouté? N'existe-t-il pas un moyen de télécharger ces modules de nœuds.
wviana
18

Vous pouvez ensuite enregistrer la plate-forme et le plugin en utilisant les commandes suivantes.

économie de masse de plate-forme

$ cordova platform save

Sauvegarde de masse des plugins

$ cordova plugin save

Veuillez noter qu'il n'y a pas de commandes ci-dessus

Encore une chose, après avoir récupéré le repo sur une autre machine, il vous suffit d'exécuter la commande suivante pour générer et récupérer automatiquement les plugins et les plates-formes

$ cordova prepare

Pour plus de références, visitez les liens ci-dessous. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Astuce Cordova : consultez toujours la documentation officielle avant toute autre chose pour obtenir la bonne solution.

Hitesh Chavda
la source
4

La plupart des autres réponses datent de 2/3 ans.

Mise à jour 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/

Comme vous pouvez le voir, j'ai commenté la plupart des lignes (toutes les lignes commençant par #). C'est parce que j'ai rencontré des problèmes avec les changements de version du plugin et que j'ai décidé de savoir ce qui se passe avec les mises à jour du plugin. Essentiellement, tous les fichiers de plate-forme et de plug-in sont inclus dans commit, maintenant ma vie est paisible.

2019:
je l' ai dit avec ce .

Après avoir développé et publié l'application, elle est devenue ci-dessous:
(Si vous vous écartez du dessous, commentez ci-dessous, nous pouvons apprendre les uns des autres)

# 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
la source
1
Vous pouvez simplement faire plugins/*alors !plugins/**/*.jsonet!plugins/**/*.xml
Z. Khullah
aussi j'ai vu conseillé de ne pas ignorer le verrouillage des paquets
Z. Khullah
@ z-khullah dans le lien fourni, le "Facultatif pour ignorer les clones de plugin Git" est donné parce que parfois nous changeons le code en eux, donc ne pouvons pas ignorer tous les fichiers. Idéalement, nous pouvons ignorer, mais il y a des suggestions en ligne en raison des problèmes dans les plugins, en particulier en tant que débutant à cordova, cela aidera. le package-lock change de 10s ou 20s de lignes à chaque fois qu'une installation de plugin change, donc c'est aussi quelque chose que nous ne voulons pas revoir le code, également en vérifiant le fichier de verrouillage, nous n'avons aucun problème jusqu'à présent, il est généré à partir du package. json. J'espère que cela aide à donner notre point de vue.
Manohar Reddy Poreddy
Oui, mais le motif fait la même chose, seulement avec moins de lignes. Quant au package-lock, il aide au débogage car il montre la structure exacte node_modules, mais oui, je pense que c'est facultatif
Z. Khullah
1
@ManoharReddyPoreddy stackoverflow.com/questions/44206782/…
Adit Saxena le
3

J'ai suivi ces étapes:

  • créer un projet cordova

  • ajouter des plates-formes

  • ajouter des plugins

Avant de construire le projet, je valide et pousse les fichiers générés. Après avoir construit le projet et vérifié les nouveaux fichiers générés. J'ai ces derniers à ajouter dans .gitignore:

/platforms/android/gradlew.bat

/ plates-formes / android / build

/ plates-formes / android / gradle

/ plateformes / android / libs

/platforms/android/gradlew.bat

/ plates-formes / android / CordovaLib / build

/platforms/android/.gradle

Victor Hugo Calderon
la source
0

J'ajoute à la liste Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

et

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
Cédric Dromzée
la source
2
Celles-ci sont généralement bonnes à ignorer, pas spécifiques à Cordova (ce .DS_Storen'est pas non plus dans la réponse de Niko).
Jari Keinänen
Ceux-ci devraient probablement être traités dans un gitignore global , pas au niveau du projet.
bdesham