web-dev-qa-db-fra.com

Composer incapable de mettre à jour un projet qui a déjà été installé à partir de la distribution .Zip?

Je suis très nouveau dans le compositeur, je ne l'ai utilisé que pour installer la bibliothèque nécessaire occasionnelle pour nos projets D8. A chaque Drupal mise à jour je lance normalement

drush up drupal

Ce qui (entre autres) remplace le dossier du fournisseur et composer.json, donc sur les sites avec des dépendances de bibliothèque, je dois relancer

composer require [library]

Conscient des avantages escomptés de Composer en tant que gestionnaire de dépendances, je souhaite utiliser composer pour maintenir nos Drupal projets). Cependant, j'ai rencontré des problèmes, à savoir que

composer update

ou composer update drupal/core --with-dependencies both give me "Nothing to install or update". Après quelques lectures, j'ai trouvé cette ressource https://github.com/drupal-composer/drupal-project . Avec cette décompression, si je lance

composer install

J'obtiens la dernière version correcte de Drupal installé dans ./web. Mais quand j'utilise le yaml du modèle template.json dans mon propre fichier composer.json, j'obtiens toujours "Rien à installer ou mettre à jour ".

Ma structure de dossiers est identique à la distribution .Zip, donc/core et/vendor et/sites etc sont tous dans le même dossier, j'ai donc évidemment ajusté le fichier composer.json en fonction. Mais peu importe ce que je fais, je reçois simplement "Rien à installer ou à mettre à jour" "Rien à installer ou à mettre à jour" "Rien à installer ou à mettre à jour"

Donc, je commence à penser que composer mise à jour avec ou sans dépendances VOUS DEMANDE D'INSTALLER LE DRUPAL 8 PROJET AVEC COMPOSER POUR COMMENCER.

Est-ce correct? Si oui, alors je peux continuer. Sinon, je dois savoir ce que je fais mal. Pour l'instant, ce n'est pas grave et je peux gérer le processus de mise à jour, mais il semble que chaque nouveau projet nécessite de plus en plus de bibliothèques non essentielles, donc je sais composer me fera gagner beaucoup de temps A l'avenir.

TL; DR - Quelqu'un peut-il me donner un coup de pouce pour configurer mes SITES DE PRODUCTION EXISTANTS ET TRAVAILLANTS afin que je puisse utiliser composer pour les mettre à jour, les ReadMe habituels ne semblent pas fonctionner correctement avec les sites qui n'étaient pas 't également installé avec le compositeur.

5
RominRonin

J'ai réussi à le faire fonctionner, j'étais très proche mais supprimer/vendor et composer.lock était ce qui a aidé à la fin. Voici les étapes du haut:

  1. ajoutez la ligne "drupal/core": "~ 8.1" à l'instruction 'require' (ou mettez-la à jour dans la version dont vous avez besoin - dans mon cas ^ 8.0 - dernière Drupal 8).
  2. Supprimez la ligne drupal/core de l'instruction 'replace'.
  3. Ajoutez la ligne suivante quelque part (à la fin? Je pense que cela devrait remplacer l'instruction des référentiels existante, plus d'informations ici .):

    "repositories": { 
        "drupal": {
            "type": "composer",
            "url": "https://packages.drupal.org/8" 
        }
    }
    
  4. Supprimez le dossier/vendor

  5. Supprimez le fichier composer.lock
  6. Exécutez votre mise à jour principale comme suit

    composer update drupal/core --with-dependencies
    
8
RominRonin