Installieren des Bootstrap-Themas mit Composer

7

Ich bin neu in der Verwendung von Composer.

Wie kann ich ein Thema installieren, z. B. https://www.drupal.org/project/bootstrap mit Composer ?

Ich habe es versucht:

composer require drupal/bootstrap

Hat aber nicht funktioniert.

Ich habe auch versucht:

composer require twbs/bootstrap

Die Installation wurde erfolgreich abgeschlossen, aber das Thema wurde auf der Drupal-Administrationsseite nicht angezeigt.

Was ist die Standardmethode, um den Namen des Themas oder Moduls zu extrahieren, mit dem verwendet werden soll composer require?

Bishoy
quelle

Antworten:

7

Das liegt daran, dass sich jedes Drupal-Paket in befindet drupal/- twbsnicht im Drupal-Paketagist. Sie müssen das dem Komponisten hinzufügen, damit es funktioniert, wie Clive sagte.

Es befindet sich nicht sofort in der Datei composer.json.

Sie müssen das hinzufügen und dann Folgendes tun:

composer remove twbs/bootstrap weil dies KEIN Drupal-fähiges Thema ist.

Das Repository composer.json Nach dem Hinzufügen, dann können Sie tun:

composer require drupal/bootstrap

Außerdem verfügt noch nicht jedes Modul oder Thema über eine composer.json-Datei. Bootstrap für Drupal funktioniert, und hier können Sie den Paketnamen bestimmen, wenn Sie sich nicht sicher sind.

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

Ich glaube , modules / Themen haben diese Datei , um Arbeit mit dem Komponisten zu schaffen ( einschließlich Repository zusätzlich in Clives Antwort).

Hier ist zum Beispiel eines meiner Projekte composer.json. Beachten Sie das Hinzufügen der URL für Repositorys und Drupal-Pakete.

{
    "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"
    }
}

Das Fehlen des Paket-Repositorys in composer.json ist eine kleine, leicht zu übersehende und oft übersehene Sache. Hoffentlich wird es in einer zukünftigen Version hinzugefügt.

Kevin
quelle
Vielen Dank für die ausführliche Antwort. Nachdem Composer das Thema erfolgreich installiert hat, wurde ein Ordner für das Thema in / theme / erstellt. Nach meinem Verständnis sollte der Komponist alles im Herstellerordner verwalten. Meine Frage ist, wie ich dies mit git verwalten soll, wenn Composer es dem Themenordner hinzufügt. Sollte ich .gitignore einen Themenordner hinzufügen?
Bishoy
Drupal-Pakete sind unterschiedlich. Sie werden in Modulen bzw. Themes installiert. Nicht-Drupal-Projekte werden in das Herstellerverzeichnis aufgenommen.
Kevin
OK, verstanden, aber sollte ich das trotzdem auf git übertragen? Muss ich dann den Komponisten wieder für Inszenierung und Produktion verwenden?
Bishoy
1
Die Versionskontrolle liegt ganz bei Ihnen. Einige Benutzer verwenden Drupal Composer und Acquia BLT, um ihre Codebasis zu verwalten. OOTB enthält Gitignore-Regeln für Drupal-Kern- und Contrib-Module und -Themen. Dazu müssen Sie jedoch lernen, wie Sie diese Projekte erstellen und bereitstellen. Siehe: github.com/drupal-composer/drupal-project
Kevin
1
Wenn Sie jedoch keinen Build- / Bereitstellungsprozess verwenden, sollten Sie ihn festschreiben, damit Sie ihn in Ihre Remote-Umgebungen übertragen können (es sei denn, Sie verfügen über Jenkins oder andere Prozesse, mit denen Composer ausgeführt und Ihr Drupal-Stack erstellt werden kann).
Kevin
4

Sie müssen den Speicherort des Drupal-Repositorys zu Ihrer Datei composer.json hinzufügen, z

"repositories": [
    {
        "type": "composer",
        "url": "https://packages.drupal.org/8"
    }
]
Clive
quelle
Können Sie bitte etwas näher darauf eingehen? Meine aktuelle Situation ist, dass ich twbs / bootstrap installiert habe. Muss ich das deinstallieren? Ist der Repository-Eintrag, auf den Sie sich beziehen, in der Lage, ausgeführt zu werden composer require drupal/bootstrap? Ist das alles und ich sollte das Thema in der Listenansicht auf der Administrationsseite des Erscheinungsbilds sehen?
Bishoy
1
@Bishoy siehe meine erweiterte Erklärung.
Kevin
1
@Bishoy Ja, ja und ja!
Clive