Comment faire pour forcer le compositeur de réinstaller une bibliothèque?
Je suis en utilisant le ZF2 squelette d'application et a un .gitignore qui empêche les bibliothèques externes d'être engagé pour git. Lors du débogage, j'aime aller et changer des trucs ici et là dans les bibliothèques de la source pour savoir comment les choses fonctionnent. Si ce version contrôlé, il serait très facile de revenir à leur état d'origine.
Comment puis-je forcer le Compositeur de réinstaller un cadre particulier de sorte que je peux obtenir un frais -non modifié - copie de nouveau?
PS: Merci de ne pas proposer la suppression de la .gitignore fichier depuis qu'il est là pour une raison; il empêche mes bibliothèques tierces de pénétrer dans mon application du référentiel. Je peux toujours installer pendant un déploiement automatisé.
- Une option serait de supprimer compositeur.serrure, puis exécutez compositeur installer
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
--prefer-source
drapeau de compositeur pour l'extraction des paquets externes avec le système d'information (si disponible). Vous pouvez simplement revenir à l'état initial. Aussi, si vous émettez lacomposer update
commande compositeur de détecter les modifications que vous avez apportées localement et demandez-lui si vous voulez vous débarrasser d'eux.Votre .gitignore fichier est lié à la racine de votre projet (ZF2 squelette) et il empêche le vendeur dir (où votre tiers libs sont) de commettre à votre propre CV. L'ignorer des fichiers est sans rapport avec le repo git de vos fournisseurs.
composer status -v
m'a donné l'info avec les changements.Juste effacer vos fournisseurs dossier
composer clearcache
est un bon ajout dans de tels cas.composer require vendor/package
va faire ce que l'OP veut et en moins de temps aussi. Je suis un peu surpris que tant de gens ont voté cette réponse.Je ne voulais pas supprimer tous les paquets dans
vendor/
répertoire, voici donc comment j'ai fait:rm -rf vendor/package-i-messed-up
composer install
nouveaucomposer clearcache
d'abord dans le cas où le cache est corrompue pour une raison quelconque.Ce que j'ai fait:
composer update --prefer-source vendor/library-name
Il récupère de nouveau la librairie avec ses repo git
composer clearcache
d'abord dans le cas où le cache est corrompue pour une raison quelconque.Réinstaller les dépendances. Supprimer le fournisseur de dossier (manuellement) ou via la commande rm (si vous êtes dans le dossier du projet, assurez-vous) sur Linux avant:
https://www.dev-metal.com/composer-problems-try-full-reset/
En tant qu'utilisateur @aaracrr souligné dans un commentaire sur une autre réponse probablement la meilleure réponse est de re-exiger le paquet avec la même version de contrainte.
ie.
ou de spécifier une version contrainte