2017-08-21 1 views
0

TL; DRCompositeur référentiel de téléchargement dans gitlab ce que l'archive

je besoin d'un moyen de faire composer télécharger mon paquet comme une archive il exclut les fichiers et les répertoires que je ne veux pas être inclus qui sont sur mon .gitattributes comme export-ignore

informations générales

J'ai des fichiers dans mon dépôt de paquets compositeur que je ne veux pas être inclus dans les projets qui utilisent ce paquet (DataFixtures, Tests, configuration CI). J'ai installé un fichier .gitattributes qui exclut ces dossiers et fichiers avec export-ignore.

Cela fonctionne très bien lorsque vous téléchargez le package en tant que zip manuellement, mais cela ne fonctionne pas, bien sûr, lorsque vous enregistrez le code avec git.

C'est là que mon problème commence, j'ai ajouté le dépôt manuellement à composer.json car il s'agit d'une instance gitlab privée. Chaque fois que je cours composer update il utilise GIT pour télécharger le code. J'ai probablement besoin d'un moyen de faire en sorte que composeur supprime les fichiers qui se trouvent sur les attributs .gitat ou les force à télécharger mon dépôt en tant qu'archive.

composer.json exemple

"repositories": [ 
    { 
     "url": "[email protected]<my-gitlab-server>:composer-libraries/testproject.git", 
     "type": "git" 
    } 
], 
...... 
"require": { 
    "myownvendor/testproject": "^1.0", 
} 

est-il un moyen de résoudre ce problème?

Répondre

1

Essayer de définir la méthode preferred-install pour ce dépôt à dist dans votre composer.json:

{ 
    "config": { 
     "preferred-install": { 
      "myownvendor/testproject": "dist" 
     } 
    } 
} 

Vous pouvez également installer les dépendances en exécutant

$ composer install --prefer-dist 

Pour référence, voir:

+1

Cela a fonctionné parfaitement pour moi. J'ai également découvert que vous pouvez l'ajouter en tant que type "paquet" dans les dépôts, de cette façon, il va toujours le télécharger comme un zip de distribution: https://getcomposer.org/doc/05-repositories.md#package- 2 – Programmy