Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren

Breite Inhalt
12/12
Breite Layout-Container
Ganze Breite
Spalten Inhalt
12/12

Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren

Manchmal passiert es, dass beim Erstellen einer neuen Drupal 9-Installation mit Composer die Verzeichnisstruktur nicht richtig angelegt werden.
Auf root-Ebene befinden sich zahlreiche Ordner und Dateien, die sich eigentlich im Unterordner web befinden sollten.

In der Praxis ist das kein großes Problem, weil die gleichen Ordner und die Dateien mit korrektem Inhalt in web auch angelegt werden.
Man kann die Ordner und Dateien in der Root löschen, dann ist alles sauber.
Aber sobald man mit Composer ein Update oder dgl. macht, sind sie wieder da.

Und das nervt, weil man sich jedes zweit Mal verklickt und sich wundert, warum die Ordner modules oder themes leer sind.

Die Ursache ist ein falscher Eintrag in der composer.json auf Root-Ebene.

Dies zeigt uns dieser Vergleich mit Windiff:

Abstand Pixel
30
Falsche Verzeichnisstruktur bei Drupal 9 in composer.json korrigieren
Abstand Pixel
30
Breite Inhalt
12/12
Breite Layout-Container
Ganze Breite
Spalten Inhalt
6/12
6/12

Falscher Eintrag:

"drupal-scaffold": 
 "drupal-scaffold": {
  "locations": {
   "web-root": "web/"
  },
  "file-mapping": {
   "[web-root]/sites/development.services.yml": false
  }
 }
}

Richtiger Eintrag:

"drupal-scaffold": {
 "locations": {
  "web-root": "web/"
 },
 "file-mapping": {
  "[web-root]/sites/development.services.yml": false
 }
}
Breite Inhalt
12/12
Breite Layout-Container
Ganze Breite
Spalten Inhalt
12/12
Abstand Pixel
30

Wenn die composer.json entsprechend angepasst wurde, kann man die überflüssigen Dateien im Root-Verzeichnis löschen und sie werden bei der nächsten Composer-Aktion nicht wieder erzeugt.

Es erübrigt sich ja, zu erwähnen, dass man solche Operationen nur mit vorherigem Backup durchführt.