web-dev-qa-db-fra.com

Quelle est la meilleure méthode pour obtenir des fichiers de fournisseurs sur le serveur?

Je suis assez nouveau à Drupal 8 Développement, et j'ai été un peu frustré par les complications que Composer a ajouté. Néanmoins, j'essaie de déterminer le meilleur moyen d'obtenir les fichiers nécessaires / fournisseur sur le serveur.

Je comprends que Composer vous recommande d'ignorer le répertoire / fournisseur. Toutefois, si vous n'avez pas de serveur de construction en place, quelle est la meilleure méthode pour obtenir les fichiers / fournisseur sur le serveur? Est-il pratique courant de charger et d'exécuter Composer sur le serveur ou est-ce un grand non-non?

3
Kellen

Vous avez deux options.

  1. Commettre l'ensemble du projet avec GIT.
  2. Utilisez Acquia Blt .

La première méthode n'est pas préférée car elle rend la taille du référentiel massif et mal à niveau, mais si vous n'avez aucun serveur de construction, vous n'avez aucun serveur de construction. Mais ne pas avoir un serveur de construction n'est pas nécessairement la fin, car ...

Le deuxième choix vous permettrait de Construire localement et déployez-vous à distance à l'aide d'une Commande BLT fournit .

Voici un exemple. Je veux construire ma Développer une branche et le mettre sur le serveur. Je peux entrer l'URL de référentiel dans mon fichier de projet.yml (fourni par BLT) et exécutez cette commande:

blt deploy -Ddeploy.branch=develop-build -Ddeploy.commitMsg='PROJECT-000: Generating new build for PROJECT.'

Cela générera un artefact de construction (qui est non engagé dans votre référentiel canonique), mais a plutôt été engagé dans le référentiel à distance déployé à develop-build Ou tout ce que vous nommez la succursale. Vous passez ensuite votre environnement de développement pour exécuter cette branche au lieu de develop. Par exemple, mon repo canonique vit sur Github, mon repo à distance est sur Acquia. GitHub n'aura jamais le -build Les succursales engagées et l'acquise repo n'aura jamais develop ou master - il aura les artefacts de construction de branches déployées . Vous pouvez utiliser le même référentiel pour les deux, mais sa traînée imo parce que vous (ou moi, quand même) vous voulez que le repo canonique soit propre et ne traîne pas autour des artefacts de cette taille.

Il est plus facile avec un serveur CI pour automatiser tout cela, mais Acquia BLT est une option viable lorsque vous n'avez pas de service CI à utiliser car Vous pouvez exécuter vous-même les commandes de votre machine.

Une autre option serait de construire vos propres scripts à faire cela aussi, mais je dirais que vous feriez mieux de commencer par BLT. Il peut être ajouté aux projets existants et il est simple de configurer via Project.yml.

Donc non, vous n'avez pas besoin d'exécuter Composer sur le serveur de production. La plupart des entreprises d'hébergement ne permettraient jamais à cela de toute façon.

2
Kevin