Base.scss wird im Plugin leider immer ignoriert

Hallo liebe Community,

ich habe ein Problem, an dem ich viel zu lange sitze und wirklich verzweifle. Unzählige Dokus und Vorschläge haben mir leider nicht helfen können.

Ich entwickle ein Plug-In (Wichtig: Es ist kein Theme und darf auch kein Theme werden).

Das Plugin funktioniert gut und hat die selbe Struktur wie bei einem Theme, aber nun einmal ohne theme.json.

Sobald ich eine theme.json erstelle, habe ich nämlich das Problem, dass ich ein Theme und kein Plugin entwickle - und das ist in meinem Fall unerwünscht, weshalb ich sie weglasse.
Das Problem ist aber, dass dort anscheinend Pfade für das Kompilieren von SCSS-Dateien hinterlegt werden.

Beispiel aus einem anderen custom Theme mit einer theme.json:

„style“: [
@Storefront“,
„app/storefront/src/scss/base.scss“
],

Anders kann ich mir nicht erklären, warum die base.scss einfach immer nur ignoriert wird.

Wenn ich zum Beispiel in meinem Plugin keine theme.json habe und

./build-storefront.sh

ausführe, dann wird die main.js-Datei trotzdem problemlos kompiliert.

Aber die base.scss einfach nicht :frowning:

In meiner base.scss steht aktuell nur langweiliger Test-Kram:

body {
background: black;
}

Was ich außerdem bereits ohne Erfolg probiert habe (in allen möglichen Varianten, Kombinationen, 100te Male):

  1. php bin/console cac:cl

  2. php bin/console them:comp

  3. ./watch-storefront → stürzt immer ab, weil die Pfadangabe nicht stimmt und mir aus irgendeinem Grund ein /bin/ zu viel setzt.

  4. ./build.sh → hier wird mir merkwürdigerweise mitgeteilt, dass Webpack den production mode verwendet, obwohl ich seit jeher in der .env die dev-Umgebung hinterlegt habe. Es gibt auch keine andere .env. Wahrscheinlich gehts aber auch hier wieder um die Unterteilung in development und production-template.

Die Doku dazu stimmt leider auch nicht, zumindest klappt es bei mir nicht. Es soll ja angeblich alles automatisch gehen.

  1. ./build-storefront.sh → mir wird zwar angezeigt, dass mein Plugin berücksichtigt wurde, aber die base.scss wurde leider wie immer ignoriert.

  2. Den Browser Cache gelöscht, gelöscht und wieder gelöscht. Den Browser gewechselt. Incognito-Fenster. Cache-lösch-Plugins installiert.

  3. php bin/console plugin:activate, deactivate, install, uninstall, refresh…

  4. /var/cache komplett löschen

  5. Dateirechte überprüft

  6. Eine andere Systemumgebung (Server) ausprobiert. Ohne Erfolg.

Es muss doch irgendwie möglich sein, dass man hier irgendwie diese base.scss integriert bekommt? Muss ich dafür irgendwie eine Webpack in mein Plug-In schieben? Wie wird die erkannt? Warum sind die Dokus noch vorhanden, obwohl sie nicht stimmen? Kann man einfach keine SCSS-Dateien außerhalb eines Plug-Ins kompilieren? Warum steht das nirgendwo? Oder übersehe ich einfach etwas absolut grundlegendes?

Der Vorschlag die css-Anpassungen ins Theme zu schieben und das Theme mit theme:compile zu kompilieren ist leider keine Option für meinen Case.

Ich bin über eure Hilfe extremst dankbar, weil ich absolut keine Idee mehr habe und ohne die SCSS-Integration mein ganzes Plugin in die Tonne kloppen kann.

LG, Fazzke

wo, also in welcher Verzeichnisstruktur, hast Du denn Deine base abgelegt?

Hallo @moschadr :slight_smile:

Ich habe die base.scss wie hier beschrieben abgelegt.

LG, Fazzke

sollte eigentlich passen …

Bist Du eigentlich sicher, dass Deine Base ignoriert wird? Vielleicht wird auch nur Dein Style ignoriert bzw. durch einen bereits vorhandenen überschrieben.

In der „theme.json“ vielleicht einen anderen Pfad eingetragen?

in einem Plugin gibt es keine theme.json

Vielen Dank schon mal für eure Hilfe :slight_smile:

@moschadr - leider nein, ich müsste die Änderungen zumindest im Browser (‚überschrieben‘) sehen, oder in der im head eingebundenen CSS-Datei. Dort wird mir auch klar: Meine base.scss wird ignoriert. Leider.

An alle: Ich danke euch für eure Unterstützung. Ich habe nun sehr langsam und vorsichtig eine neue Instanz des Shops aufgesetzt und kann nun, wenn ich die Build-Dateien ausführe, meine Änderung sehen.

Ich würde euch gerne sagen, was ich anders gemacht habe, aber ich kann es leider nicht: Es läuft nun wie gewünscht.

Besten Dank an alle und LG, Fazzke

@Nachtrag: Ich kann es nicht mehr mit 100%iger Sicherheit sagen, aber ich bin mir inzwischen sehr sicher, dass eine fehlerhafte Installation von jq das Problem war. Ohne diese Erweiterung kann das Shell-Skript nicht ordnungsgemäß durchlaufen.

Mein Fehler war, dass ich folgendes Paket nachinstalliert habe:

npm i node-jq

Das ist nicht das richtige Paket, denn es handelt sich dabei gar nicht um ein npm-spezifisches Paket ups.

Die Lösung, die mir geholfen hat, gibt es auf jeden Fall hier.

1 Like