.gitignore pour les projets PhoneGap / Cordova 3.0 – que dois-je commettre?

J’ai juste essayé de créer un nouveau projet phonegap 3.0 … Quoi qu’il en soit, je vois que le dossier du projet contient:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

Et après avoir essayé phonegap local run android je vois beaucoup de fichiers binarys / générés dans les platforms/android . Cela me laisse à me demander quelles parties de cette structure de dossier je devrais append à mon repository git. Normalement, je considère très difficile de commettre des fichiers binarys. Par conséquent, j’appendais normalement des modèles comme bin/ , obj/ , *.o , *.pyc etc. à .gitignore pour éviter de polluer mon repository git avec des choses qui ne servent qu’à créer des conflits de fusion.

Assurément, www devrait être ajouté à git, mais qu’en est-il des autres parties du projet. Dans quelle mesure sont-ils des produits du code source et dans quelle mesure sont-ils la configuration du projet?

Que faire? Certes je suis nouveau donc je comprends à peine ce qui a du sens ici …

La réponse dépend de quelles plates-formes vous développez l’application phongap et si vous suivez la structure de répertoires standard.

Si la structure du répertoire de votre projet est standard, vous pouvez commencer à partir de ce gitignore et le modifier selon vos besoins.

En règle générale, vous devez exclure tous les fichiers générés tels que les répertoires bin/ et gen/ . Si vous développez une version Android de votre application, vous devez également exclure les fichiers de compilation comme *.apk .

Tous les fichiers générés dans le sous-répertoire android doivent également être exclus:

 Android/bin/ Android/gen/ Android/assets/ 

Expansion sur @Jake Moshenko répond:

J’aime l’idée d’omettre le répertoire des platforms . En fait, je suis en mesure d’exclure les répertoires des pluginsplugins et des platformsplatforms . Un bon sharepoint départ pour le .gitignore :

 platforms/ plugins/ 

Le problème avec ceci est que la copie propre du repository doit être initialisée avant que vous puissiez réellement l’utiliser. Il peut être judicieux de créer un script d’initialisation tel que:

 #!/bin/bash textReset=$(tput sgr0) textGreen=$(tput setaf 2) message_info () { echo "${textGreen}[my-app]${textReset} $1" } message_info "Creating necessary directories..." mkdir plugins mkdir platforms message_info "Adding platforms..." # If using cordova, change to: cordova platform add android phonegap build android phonegap build ios message_info "Adding plugins..." # If using cordova, change to: cordova plugin add phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git 

Une mise en garde à cette approche est qu’il est un peu plus difficile de personnaliser le code d’application / configuration de la plate-forme en dehors de ce que supporte phonegap / cordova (c’est-à-dire le support de l’écran).

Mise à jour: Bash Gist

Ce fichier contient un script plus complet pour gérer un projet qui ne valide pas les répertoires de pluginsplugins et de platformsplatforms . Il fournit un mécanisme pour copier les icons et les images splashscreen de www vers les répertoires de plate-forme (pour iOS et Android), installer des plug-ins et gérer les fichiers spécifiques à la plate-forme qui doivent être ajoutés au contrôle de version.

Mise à jour: Grunt Gist

Voici un autre élément qui est un port Grunt du script bash mentionné ci-dessus. (Merci à @obie pour avoir suggéré grognement).

Donc, je viens de comprendre cela par essais et erreurs. Le répertoire des platforms peut être omis si vous utilisez phonegap local ou remote build, tel qu’il est généré à la volée. Tous les autres dossiers, y compris le dossier caché .cordova sont requirejs.

Je voulais juste laisser ici mon expérience avec ce problème et l’approche que nous avons finalement suivie.

Dans notre projet phonegap, nous avons commencé à valider tous les fichiers moins le dossier / la plateforme en utilisant le fichier .gitignore. Nous avons pensé de cette façon, lorsque le développeur clonait le référentiel, la seule action à faire serait d’exécuter:

phonegap / cordova add platform

Mais ce n’était pas le cas. Une fois la plate-forme ajoutée et nous avons essayé de comstackr, une erreur est apparue et l’application n’a pas été installée sur l’appareil.

En regardant les journaux, nous avons eu quelques résultats indiquant que cette erreur était due à des plugins. Nous avons donc décidé de réinstaller tous les plugins que nous utilisions dans le projet et voilá le bon fonctionnement de l’application.

Donc, mon conseil est de sauvegarder dans le référentiel tout le contenu moins la plate-forme de dossiers et les plugins. Créez et téléchargez dans le référentiel un fichier README avec une liste des plug-ins utilisés dans le projet.

De cette façon, lorsqu’un développeur clonera le référentiel, il devra:

1.- Ajouter les plates-formes: phonegap / cordova append plate-forme “plate-forme”

2.- Ajouter les plugins: plugin phonegap / cordova append “plugin”

J’espère que cela t’aides!

Cordialement.

Beaucoup de ces choses sont anciennes et ne s’appliquent pas vraiment à la dernière version d’Apache Cordova. J’utilise Apache Cordova 5.1.1 et ce fichier .gitignore me permet de toujours personnaliser avec des icons personnalisées, etc., tout en bloquant tout ce dont nous n’avons pas besoin pour la version pour Android et pour IOS. Oui .gradle est utilisé alors ne le supprimez pas!

 www/ .gradle/ build/ .tmp/ .temp/ coverage/ *.log node_modules/ bower_components/ 

Bien que ce soit une préférence personnelle, je suis allé avec cela (pour un projet Android uniquement). Enlever le plus, mais garder ce qui est personnalisé

 ToonPlane/platforms/android/* !ToonPlane/platforms/android/AndroidManifest.xml ToonPlane/plugins/* !ToonPlane/plugins/android.json !ToonPlane/plugins/fetch.json