Bonjour Zesteuse / Zesteur citronné,
Je suis en plein développement d’une application React pour mon entreprise et j’ai besoin de modifier un module externe spécifique pour l’adapter aux besoins du cahier des charges.
Dans un premier temps, j’ai décidé de fork le module. Puis je me suis retrouvé devant la première contrainte : comment je peux tester mon code ? L’idéal ce serai de pouvoir le tester dans l’application que je développe pour choisir quelles modifications apporter. En dehors du contexte, ça devient franchement compliqué d’avancer (je tiens à préciser que le node module est un gros composant React, ce n’est pas un simple bouton).
Puis m’est venu à l’esprit d’utiliser des sous-modules Git. Est-ce une bonne idée ? Encore maintenant, je n’en sais rien. J’ai pu placer mon fork GIT dans un répertoire, en l’occurrence dans /src/vendors
. Cette méthode offre la possibilité de modifier le code source, de compiler le script et d’être importé depuis le composant utilisant le node_modules (puis-ce qu’un lien symbolique est créé dans les node_modules de mon application). Chouette !
Après quoi, je crée un commit avec toutes ces modifications dans la branche dev. Pour vérifier que tout est bon, je checkout sur la branche master - là mystérieusement le répertoire du sous-module dans /src/vendors
ne disparaît pas … je décide de supprimer le répertoire à la main avant de revenir à la branche dev. Puis à partir de ce moment là, je n’ai plus jamais réussi à re-télécharger mon sous-module (le répertoire est définitivement vide, même en tapant git submodule update --init --recursive
). Il était pourtant bien inscrit dans le fichier .git/config
.
Ne comprenant pas, je tente de cloner le projet à côté ; checkout sur la branche dev puis initialisation des sous-modules ; est-ce bien git submodule update --init --recursive
? En tout cas, rien ne s’est passé comme prévu ; le sous-module semble perdu à tout jamais ! Le sous-module n’apparaît même pas dans le fichier de config. J’ai décidé d’enlever le commit que j’avais fait sur la branche dev (force push) pour revenir juste avant mon schmilblick.
Qu’en pensez-vous ? Ce que je veux c’est simplement pouvoir modifier le module dans le même environnement que mon projet ; sachant que je n’ai absolument aucune envie de mélanger mes dépendances avec celles du module (et puis en plus, il a ses propres méthodes de compilation, ça ne serait pas raisonnable de les coupler).
Merci beaucoup pour votre aide.