J'ai juste essayé de créer un nouveau projet phonegap 3.0 ... Note: je suis nouveau sur phonegap. 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 binaires / générés dans platforms/android
. Cela me laisse me demander quelles parties de cette structure de dossiers dois-je ajouter à mon référentiel git. Normalement, je considérerais qu'il est extrêmement mauvais de commettre des fichiers binaires. Par conséquent, je normalement ajouter des motifs comme bin/
, obj/
, *.o
, *.pyc
etc. , pour .gitignore
ne pas polluer mon dépôt git avec des choses qui ne sert qu'à créer des conflits de fusion.
Sûrement, 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 une configuration de projet?
Que faire? Certes, je suis nouveau, donc je comprends à peine ce qui a du sens ici ...
Réponses:
La réponse dépend des plates-formes sur lesquelles 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 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/
etgen/
. Si vous développez une version Android de votre application, vous devez également exclure les fichiers de construction*.apk
.Tous les fichiers générés dans le
android
sous - répertoire doivent également être exclus:la source
Extension de la réponse @Jake Moshenko:
J'aime l'idée d'omettre le
platforms
répertoire. En fait, je peux exclure les répertoiresplugins
etplatforms
. Un bon point de départ pour.gitignore
:Le problème avec cela est que la copie propre du dépôt doit être initialisée avant de pouvoir travailler avec elle. Il peut être judicieux de créer un script d'initialisation tel que:
Une mise en garde à cette approche est qu'elle rend un peu plus difficile la personnalisation du code / de la configuration d'application spécifique à la plate-forme en dehors de ce qui est pris en charge par phonegap / cordova (c'est-à-dire la prise en charge de l'orientation de l'écran).
Mise à jour: Bash Gist
Cet essentiel contient un script plus complet pour gérer un projet qui ne valide pas les répertoires
plugins
etplatforms
. Il fournit un mécanisme pour copier les icônes et les images de l'écran de démarrage de www vers les répertoires de la plate-forme (pour iOS et Android), installer des plugins 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 essentiel qui est un portage Grunt du script bash mentionné ci-dessus. (Merci à @obie pour avoir suggéré grogner).
la source
platform-merges
répertoire. Par exemple, vous pouvez vous engagerplatform-merges/android/AndroidManifest.xml
. Cette approche fonctionne bien pour des projets simples, mais elle pourrait compliquer les choses dans des projets plus importants.rm -rf platforms plugins
.Donc, je viens de comprendre cela par essais et erreurs. Le
platforms
répertoire peut être omis si vous utilisez phonegap local ou remote build, car il est généré à la volée. Tous les autres dossiers, y compris le dossier caché,.cordova
sont requis.la source
.cordova
dossier - pourquoi dites-vous qu'il est nécessaire @Jake Moshenko?Je voulais juste laisser ici mon expérience de 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 plate-forme en utilisant le fichier .gitignore. Nous avons pensé de cette façon, lorsque le développeur a cloné le référentiel, la seule action restant à faire serait d'exécuter:
phonegap / cordova ajouter une plateforme
Mais ce n'était pas le cas. Une fois que la plate-forme a été ajoutée et que nous avons essayé de compiler, une erreur est apparue et l'application ne s'est pas installée sur l'appareil.
En regardant les journaux, nous avons obtenu des 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á l'application fonctionner correctement.
Mon conseil est donc 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 de plugins utilisés dans le projet.
De cette façon, lorsqu'un développeur clone le référentiel, il devra:
1.- Ajouter les plates-formes: phonegap / cordova ajouter la plate-forme "plate-forme"
2.- Ajouter les plugins: phonegap / cordova plugin ajouter "plugin"
J'espère que cela t'aides!
Cordialement.
la source
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 .gitignore me permet de toujours personnaliser avec des icônes personnalisées, etc. tout en bloquant tout ce dont nous n'avons pas besoin pour la version pour Android et IOS. Oui .gradle est utilisé, alors ne le supprimez pas!
la source
www/
dossier là-dedans? Dans mon application, c'est en fait la plupart des éléments utiles de la vie de l'application Web.www/
parce que le contenu généré par les scripts de construction personnalisés. Vous ne voulez pas vraiment de fichiers source là-dedans.Bien que ce soit une préférence personnelle, je suis allé avec cela (pour un projet Android uniquement). Supprimer la plupart des choses, mais conserver ce qui est personnalisé
la source