Gibt es einen Unterschied zwischen dem Erweitern eines Themas mit _module.less
und _extend.less
? Und was ist die beste Vorgehensweise beim Erweitern eines Moduls / Themas?
Mein erster Gedanke war, dass es besser ist, _module.less
wenn man ein neues Modul stylt und _extend.less
wenn man ein Modul erweitert. Aber Luma verwendet, _module.less
wenn Sie das leere Thema erweitern, so dass die Theorie aus dem Fenster gegangen ist.
Der einzige Unterschied, den ich zwischen ihnen sehen kann, ist der _module.less
Import vor der responsiven Bibliothek und _theme.less
wohin _extend.less
nach ihnen.
Dies ist die Reihenfolge, in der sie importiert werden vendor/magento/theme-frontend-blank/web/css/styles-l.less
//
// Blank theme desktop styles
// _____________________________________________
// These desktop styles are added to mobile
//
// Global lib + theme styles
// ---------------------------------------------
@import '_styles.less';
@import (reference) 'source/_extends.less';
//
// Magento Import instructions
// ---------------------------------------------
//@magento_import 'source/_module.less'; // Theme modules
//@magento_import 'source/_widgets.less'; // Theme widgets
//
// Media queries collector
// ---------------------------------------------
@import 'source/lib/_responsive.less';
@media-target: 'desktop'; // Sets target device for this file
@media-common: false; // Sets not to output common styles
//
// Global variables override
// ---------------------------------------------
@import 'source/_theme.less';
//
// Extend for minor customisation
// ---------------------------------------------
//@magento_import 'source/_extend.less';
.less
Datei in seinem Design mit demselben Pfad wie eine Datei im übergeordneten Design / Modul hinzufügt , ist dies eine Überschreibung. Sie können dies möglicherweise überprüfen, indem Sie ein leeres _module.less in Ihrem Design erstellen und prüfen, ob die ursprünglichen Stile zutreffen.php bin/magento setup:static-content:deploy
können Sie nachschauenpub/static/frontend/<vendor>/<themeName>/<locale>/css/
undpub/static/frontend/<vendor>/<themeName>/<locale>/<Module_Name>/css/
und es gibt symbolische Links für * .less-Dateien zu Ihrem Thema oder dem Modul / übergeordneten Thema, von dem es stammt.Einfache Erklärung oder Unterschied zwischen beiden:
_extend.less
ist die Möglichkeit, übergeordnete Themenstile zu erweitern / ändern, zum Beispiel, wenn Sie mit Ihrem übergeordneten Thema Luma zufrieden sind und nur die Schaltflächenstile in Ihrem benutzerdefinierten Thema ändern möchten, müssen Sie lediglich eine neue Datei_buttons_extend.less
unterweb/css/source
in Ihrem benutzerdefinierten Thema und erstellen Stile dort anpassen. Registrieren Sie diese Datei, indem Sie sie der_extend.less
Datei in Ihrem Themenverzeichnis hinzufügen .Was ist, wenn Sie Stile eines Moduls erweitern möchten, z. B. das Auschecken eines Moduls? Nun, Sie können eine
_extend.less
Datei in Ihrem Themenmodulordner erstellenMagento_Checkout/web/css/source/_extend.less
und dort das Modul-Styling hinzufügen / erweitern.Wenn ich nun eine
_module.less
Datei in meinem Modulverzeichnis hinzufüge,Magento_Checkout/web/css/source/_module.less
beabsichtige ich, das Styling meiner übergeordneten Themen für dieses Modul zu überschreiben. In diesem Fall muss ich die_module.less
Datei aus dem Modulverzeichnis meines übergeordneten Themas kopieren und an dieser Datei Änderungen vornehmen. In diesem Fall wird diese Datei geändert Ersetzen Sie die übergeordnete Themendatei_module.less
vollständig.quelle
Das
_extends.less
mit einem S am Ende innerhalb des leeren Themas ist eine Datei, in der alle Klassen erstellt werden, dieLESS
später innerhalb des Themas erweitert werden können, ohne dass neue Komponenten oder eine modulare Struktur für Stiländerungen erstellt werden müssen. -> Für diejenigen, die mir nicht glauben: https://github.com/magento/magento2/blob/2.3-develop/app/design/frontend/Magento/blank/web/css/source/_extends.less check the Datei.Das
_extend.less
ohne das S am Ende ist, wenn Sie zu 99% mit dem, was das übergeordnete Thema hat, zufrieden sind und nur ein paar Dinge ändern müssen, etwas Styling ändern und das war's.Über letzteres, meine persönliche Meinung, verwenden Sie es nicht für Ihre eigene Entwicklung. Es schafft später ein großes Durcheinander. Halten Sie Ihre Struktur modular mit
_module.less
jedem Modul, das Sie anpassen möchten, und Sie erhalten am Ende ein besseres Ergebnis und ein wartbares Projekt.quelle