2017-08-24 1 views
1

J'ai deux projets sur lesquels je travaille, les deux ont été configurés comme repos git, les deux utilisent composer. Le premier projet utilise la seconde en tant que bibliothèque. Je configuré composer.json de la manière suivante:Clones de compositeurs de cache au lieu de repo

... "repositories": [ 
    {"type": "composer", "url":"http://composer.myrepourl.com/repo/private/"}, 
] 

"require": { 
    "second/second": "dev-B-3" 
} ... 

Il n'y avait pas de problème en tirant le projet à partir d'un référentiel pour la première fois. Cependant maintenant j'ai fait quelques changements dans le deuxième projet, poussé au repo et veut maintenant les avoir dans le premier projet, mais pour une certaine raison le compositeur tire du cache.

J'ai couru composer clear-cache. J'ai essayé de supprimer: le dossier du fournisseur, /home/user/.composer/cache, le cache dans le conteneur /root/.composer/, mais il trouve toujours un moyen de cloner le second projet du cache au lieu de le retirer du repo.

Des idées sur la façon de forcer le compositeur à toujours retirer du repo au lieu de le cloner depuis le cache?

+2

pourquoi ne pas utiliser le type: VCS pour les paquets de bibliothèque? https://getcomposer.org/doc/05-repositories.md#using-private-repositories – ivoba

Répondre

0

Ok je l'ai trouvé une solution:

sudo rm -r /home/user/project/vendor 
cd %wherever_your_docker_is% 
docker-compose stop 
docker-compose rm 
docker-compose up -d 
composer update 
1

Run

$ composer install --prefer-source 

Vous pouvez également spécifier votre méthode d'installation préférée dans composer.json généralement:

{ 
    "config": { 
     "preferred-install": "source" 
    } 
} 

ou spécifiquement pour la dépendance désirée

généralement:

{ 
    "config": { 
     "preferred-install": { 
      "vendor/package": "source", 
      "*": "dist" 
     } 
    } 
} 

Pour référence, voir: