web-dev-qa-db-fra.com

Installation de Bootstrap theme en utilisant Composer

Je suis novice dans l'utilisation de Composer.

Comment puis-je installer un thème, par exemple https://www.drupal.org/project/bootstrap en utilisant composer

J'ai essayé:

composer require drupal/bootstrap

Mais ça n'a pas marché.

J'ai aussi essayé:

composer require twbs/bootstrap

L'installation s'est terminée avec succès, mais je n'ai pas pu voir le thème apparaître à Drupal.

Quelle est la méthode standard pour extraire le nom du thème ou du module à utiliser avec composer require?

7
Bishoy

En effet, chaque package Drupal est à drupal/ - twbs n'est pas dans le Drupal packagist. Vous devez l'ajouter à composer pour que cela fonctionne comme l'a dit Clive.

Ce n'est pas pas dans le fichier composer.json hors de la boîte.

Vous devez ajouter cela, puis faire:

composer remove twbs/bootstrap car ce n'est PAS un thème Drupal ready.

Après avoir ajouté le référentiel à composer.json, alors vous pouvez faire:

composer require drupal/bootstrap

De plus, tous les modules ou thèmes n'ont pas encore de fichier composer.json. Bootstrap for Drupal le fait, et c'est là que vous pouvez déterminer le nom du package en cas de doute).

http://cgit.drupalcode.org/bootstrap/tree/composer.json

Je crois que les modules/thèmes ont pour fournir ce fichier afin de fonctionner avec composer ( y compris l'ajout de référentiel dans la réponse Clives).

Voici un de mes projets composer.json, par exemple. Notez l'ajout des référentiels et Drupal URL des packages).

{
    "name": "drupal/drupal",
    "description": "Drupal is an open source content management platform powering millions of websites and applications.",
    "type": "project",
    "license": "GPL-2.0+",
    "require": {
        "composer/installers": "^1.0.21",
        "wikimedia/composer-merge-plugin": "~1.3",
        "drupal/search_api_solr": "1.0.0-beta1",
        "drupal/search_api": "^1.0@beta"
    },
    "replace": {
        "drupal/core": "~8.2"
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "config": {
        "preferred-install": "dist",
        "autoloader-suffix": "Drupal8"
    },
    "repositories": {
        "drupal": {
            "type": "composer",
            "url":  "https://packages.drupal.org/8"
        }
    },
    "extra": {
        "_readme": [
            "By default Drupal loads the autoloader from ./vendor/autoload.php.",
            "To change the autoloader you can edit ./autoload.php."
        ],
        "merge-plugin": {
            "include": [
                "core/composer.json"
            ],
            "recurse": false,
            "replace": false,
            "merge-extra": false
        },
        "installer-paths": {
            "modules/contrib/{$name}": ["type:drupal-module"],
            "themes/contrib/{$name}": ["type:drupal-theme"]
        }
    },
    "autoload": {
        "psr-4": {
            "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
        }
    },
    "scripts": {
        "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
        "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
        "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
        "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
    }
}

L'absence du référentiel de packages dans composer.json est une petite chose, facilement manquée et souvent négligée. Espérons qu'il sera ajouté dans une prochaine version.

7
Kevin

Vous devez ajouter l'emplacement Drupal repository à votre fichier composer.json, par ex.

"repositories": [
    {
        "type": "composer",
        "url": "https://packages.drupal.org/8"
    }
]
4
Clive