Wenn ich ein neues M2-Projekt starte, muss ich zuerst den Core über Composer installieren:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition
Ich kann jetzt meine benutzerdefinierten Module und Themen unter schreiben app/code
. Ich würde dann meinen composer.*
und den gesamten app/code
Ordner zu meinem VCS hinzufügen . Soweit ist alles in Ordnung.
Angenommen, ich möchte jetzt einige Build-Tools für mein Projekt verwenden, beispielsweise Grunt oder Gulp.
Wenn ich meine eigene festschreibe
Gruntfile.js
, wird diese durch dasmagento/magento2-base
Paket überschrieben , wenn ichcomposer install
nach dem Klonen des Repos starte.Wenn ich mein festschreibe
gulpfile.js
, kann ich meine Abhängigkeiten in a nicht wirklich definierenpackage.json
, da es auch von überschrieben würdemagento/magento2-base
.Wenn ich mich für das Grunt-Setup von Magento entscheide und es anpassen möchte, indem ich die Dateien unter
/dev/tools/grunt
(z. B.themes.js
) bearbeite , kann ich das nicht, da meine Änderungen von überschrieben würdenmagento/magento2-base
.
Meines Wissens nach können Sie in Ihrem Dokumentenstamm nicht wirklich viel tun. Es gibt natürlich viele Lösungen für dieses Problem:
- Ich könnte
git checkout -
direkt nach der Installation eine ausführen , um meine eigenen Dateien zurückzusetzen - Ich konnte meine Build - Dateien in einem speziellen Ordner speichern
/build
zum Beispiel - Ich könnte ein anderes Build-Tool wie Phing, Ant oder Rake verwenden (meine Frontend-Entwickler wären allerdings nicht so glücklich)
- Ich könnte
magento/magento2-base
mit einem benutzerdefinierten Paket ersetzen , das eine benutzerdefinierte Zuordnung für Kerndateien hat (nicht wirklich optimal, aber hey, es ist eine Option)
Ich persönlich mag all diese Optionen nicht, daher würde ich gerne wissen, ob es einen bevorzugten oder besseren Weg gibt, um das zu erreichen, was ich versuche.
Hat jemand das gleiche Problem? Wie hast du das gelöst? Wie strukturieren Sie Ihr Projekt unter VCS?
AKTUALISIEREN
Ein zusätzlicher Punkt im Zusammenhang mit der Projekteinrichtung. In meinen Experimenten habe ich festgestellt, dass der Magento Composer Installer ein Flag zum Überschreiben von Dateien hat:
"extra": {
"magento-force": "override"
}
Es wird intern als boolescher Wert behandelt, wenn ich mich nicht irre. Deshalb habe ich versucht, ihn so einzustellen, dass das false
Überschreiben übersprungen wird. Beim Ausführen composer install
schlägt meine Installation fehl, da die Datei (en) bereits vorhanden sind. Grundsätzlich kann ich Magento nicht installieren, wenn ich meine Dateien nicht überschreiben lasse.
Was ist dann der Zweck dieser Flagge? Soll ich nur eine Überprüfung für mich durchführen? Um ehrlich zu sein, macht es für mich wenig Sinn, aber vielleicht kann jemand etwas Licht in das Thema bringen.
Gruntfile.js
, gulpfile.js
und package.json
ist Problem gelöst. Das Problem adressiert in dieser Frage ist nach wie vor für neuere Magento 2 Versionen , wenn Sie ändern müssen themes.js
, index.php
oder .htaccess
zum Beispiel.