Question Quelles parties des projets générés par cordova cli peuvent être archivées en toute sécurité dans le contrôle de code source?


Je cherche à utiliser Cordova CLI au lieu d'une solution pour la gestion en ligne de commande d'un projet phonegap / cordova. Je me demande quelles parties de l'arborescence, le cas échéant, ne devraient pas être placées sous contrôle de version?


35
2018-06-07 17:37


origine


Réponses:


Cela dépend de votre projet et de votre flux de travail.

Pour beaucoup de projets, le ./www dossier serait suffisant comme déjà mentionné, mais il y a d'autres dossiers qui pourraient être utiles en fonction des aspects du cli que vous utilisez.

Exemples:

  • ./merges pour les substitutions HTML / CSS / JS spécifiques à la plate-forme
  • ./.cordova pour les hooks cli (comme before_build, after_plugin_add, etc.)

De plus, tout ce que vous voudrez peut-être éviter ./www pendant le développement. Par exemple, j'ai un ./src dossier et le contenu sont concaténés et ajoutés à ./www dans le cadre de notre processus de construction. Nos tests unitaires sont également en dehors de ./www.

Au lieu d'inclure un dossier spécifique, j'ai un .gitignore qui garde des artefacts de construction comme ./platforms/* et ./plugins/* contrôle hors version.


23
2018-06-08 03:42



2015 - Cordova 5.1.1 answer

Après avoir travaillé pendant un certain temps avec un projet Cordova de 3.4.0 à 5.1.1, voici mes commentaires!

ma .gitignore fichier ressemble à:

*~
**~
platforms/**
plugins/**

le www / .cordova et les autres dossiers dont vous avez besoin sont versés.

ma .cordova le dossier est actuellement vide (j’avais des erreurs quand .cordova dossier, peut-être ce n'est plus le cas)

Tous les plugins et plateformes doivent être enregistrés dans le config.xml fichier.

Si vous ajoutez des plugins en ligne de commande, utilisez cordova plugin add $pluginName --save --shrinkwrap -> il ajoutera automatiquement le plugin à config.xml et corrigez le numéro de version, facilitant ainsi le partage du projet Cordova entre développeurs.

Lire la suite à ce sujet et sur le partage des projets de cordova, par l'auteur du long métrage.

Avoir les plugins dans config.xml permet aux plug-ins d'être installés sur d'autres ordinateurs de développement lorsqu'ils installent une plate-forme. Sans cela, ils devront eux-mêmes ajouter le plugin.

En quelque sorte le config.xml agit comme un package.json pour les projets NPM. Mais je ne sais toujours pas comment gérer un nouveau plug-in ajouté, pour autant que je sache, les plug-ins ne sont installés que lors de l'installation de la plate-forme, il n'y a pas npm insall/update équivalent (mais vous pouvez désinstaller / réinstaller la plate-forme).

Voici un exemple config.xml de mon projet:

<?xml version='1.0' encoding='utf-8'?>
<widget id="co.xxx" version="0.2.6" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>xxx</name>
    <description>
        Your Knowledge Network
    </description>
    <author email="info@xxx.co" href="https://xxx.co">
        xxx
    </author>
    <content src="index.html" />
    <preference name="permissions" value="none" />
    <preference name="StatusBarOverlaysWebView" value="false" />
    <preference name="android-minSdkVersion" value="14" />
    <preference name="android-targetSdkVersion" value="22" />
    <preference name="phonegap-version" value="cli-5.1.1" />
    <plugin name="cordova-plugin-device" spec="1.0.1" />
    <plugin name="cordova-plugin-console" spec="1.0.1" />
    <plugin name="cordova-plugin-whitelist" spec="1.1.0" />
    <plugin name="cordova-plugin-crosswalk-webview" spec="1.2.0" />
    <access origin="*" />
    <allow-intent href="*" />
    <engine name="browser" spec="^3.6.0" />
    <engine name="android" spec="^4.0.2" />
    <plugin name="cordova-plugin-statusbar" spec="^1.0.1" />
</widget>

Les plates-formes ne sont pas automatiquement installées (pour autant que je sache), mais au moins lorsqu'un utilisateur installe la plate-forme, il obtient la bonne version de la plate-forme!

Certaines autres personnes utilisent Plugman, un outil destiné à gérer les plugins Cordova (pas encore testé).


13
2017-07-17 13:46



Eh bien ce que vous contrôlez est votre propre choix, bien que, personnellement, je n'utiliserais que le contrôle de version sur le www folder, étant donné que tout votre contenu codé et stocké est ( html, css, js, images, audio, etc ), tout le reste sera du contenu statique (dans la plupart des cas)


0
2018-06-07 22:51



Malheureusement je ne peux pas ajouter seulement un commentaire, alors voici ma réponse pour @blockhead et Sebastien Lorber:

Il n'est pas nécessaire de sauvegarder les fichiers du dossier 'platform' même le fichier 'AndroidManifest.xml' (ou tout fichier de configuration pour une autre plate-forme). Vous pouvez spécifier vos préférences dans «config.xml» et cela affectera ces fichiers de configuration spécifiques à la plateforme générés. (par exemple, AndroidManifest) - voir documentation phonegap.

alors vous pouvez avoir sous le contrôle de version uniquement le dossier 'www' et le fichier 'config.xml'.


0
2018-01-20 14:46



Si quelqu'un veut coder la plateforme Android de Cordova CLI (projet complexe Android Hybrid) en subversion, ces fichiers peuvent être exclus en développant avec l'équipe:

// to exclude files into repo
.gitignore
.gradle
.idea
local.properties
android.iml

/build
/gradlew
/gradlew.bat
/gradle

CordovaLib/CordovaLib.iml

Si quelqu'un a des problèmes avec une erreur svn alors que le projet d'importation de l'option Gradle à partir du disque ne contient pas le client subversion intégré d'Android Studio, le lien suivant vous sera utile:      https://stackoverflow.com/a/34633162/5287727


0
2018-01-06 13:25



Je suis un développeur de cordova depuis la v2.9 et le conseil typique d'exclure la plate-forme et les dossiers de plug-ins fonctionne la plupart du temps ... sauf quand il ne le fait pas.

J'ai remarqué sur un projet qui a l’impression d’utiliser tous les plug-ins connus de l’homme que ce mantra est en panne, et je ne parviens pas à faire évoluer le contrôle de version et à produire une nouvelle version de manière fiable.

Ceci pour quelques raisons:

Apple change les choses et, au fil du temps, un certain nombre de piratages de Cordova doivent être ajoutés à un projet pour le rendre fiable. Par exemple, iOS 10 a ajouté une exigence selon laquelle, si vous utilisez la caméra, vous devez spécifier à quoi vous l'utilisiez - ou l'application tomberait en panne lorsque vous avez essayé. Pendant que j'attendais le plug-in de la caméra pour résoudre ce problème, j'avais besoin d'éditer les fichiers source iOS, puis quelque temps plus tard, j'avais besoin de créer une ancienne version et de créer les problèmes.

Mais la vraie douleur est que les plug-ins s'écartent de la façon de faire de Cordova. Ce projet auquel je fais référence utilise le kit de développement Adobe Aviary / Image édition. Leurs instructions consistent à installer le plug-in, à copier certains fichiers sdk téléchargés séparément, puis à les réinstaller. J'ai essayé de créer un script qui ne le tuerait pas, mais je viens juste de commettre le répertoire des plugins et des plates-formes sur l'application - de cette façon, je peux remonter le temps et recréer une compilation de manière fiable.

Oui, cela ajoute plus de taille au contrôle de la source, oui j'aimerais bien le faire "bien", mais ça m'a mordu. Juste mon $ 0.02

TL/DR - When you starting working with more than a couple of plugins, you might need to consider adding the platforms and plugins folder to source control


0
2017-09-13 02:35