Childtheme automatische SCSS Kompilierung

Hallo zusammen,
aktuell bin ich dabei meinen ersten Shop zu Shopware zu migrieren.

Habe dazu das Productiontemplate verwendet (da das Dev Template ja eher für Contributor und Pluginentwickler ist, oder?)
und dieses auf einen Ubuntuserver deployed.

Bin dann hergegangen und habe ein Childtheme (wie in der Doku beschrieben) erstellt. Soweit funktioniert auch alles einwandfrei. :+1:

Allerdings ist der Entwicklungsworkflow noch etwas komisch. Obwohl die ./bin/watch-storefront.sh läuft, muss ich bei SCSS Änderungen jedes mal einen ./bin/console theme:compile ausführen, obwohl die watch-storefront.sh erkennt, dass sich an der SCSS etwas verändert hat.

In der .env ist der Devmodus und auch der Debugmodus aktiviert. Dateiberechtigungen sehen soweit auch alle richtig aus.

Was ich komisch finde ist, dass Shopware die all.css aus einem Cache-Verzeichnis kommt: www.example.com/theme/b3aacaf1a037eca1ee5efc399a02c472/css/all.css?1652098750493660

Was mache ich falsch? :frowning:

Vielen Dank im Voraus.

LG Patrick

watch-storefront.sh erzeugt einen separaten Port (weiß nicht auswendig welchen). Du rufst die Website über den Port auf und nicht über die normale Domain?

1 „Gefällt mir“

Vielen Dank für deine Antwort.

Ja, ich bin auf den Port, wurde dann aber immer weitergeleitet zur Adresse ohne Port. (Dachte das ist normal). Schuld an der Weiterleitung war aber die Nginx Config.

Habe dann im Nginx einen Reverseproxy zu localhost:9998 eingerichtet.

Damit sehe ich auch tatsächlich einen Request im NPM Prozess aufschlagen. Allerdings:
Rejecting request „GET example.com/“ on proxy server for „example.com:9998

Wenn ich mit wget localhost:9998 aufrufe, crasht sogar der ganze NPM Prozess mit einer relativ nichtssagenden Fehlermeldung.

events.js:291
      throw er; // Unhandled 'error' event
      ^

Error: connect ECONNREFUSED 123.123.123.123:80
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)
Emitted 'error' event on ClientRequest instance at:
    at errorOrDestroy (internal/streams/destroy.js:108:12)
    at ClientRequest.onerror (_stream_readable.js:754:7)
    at ClientRequest.emit (events.js:314:20)
    at Socket.socketErrorListener (_http_client.js:427:9)
    at Socket.emit (events.js:314:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '123.123.123.123',
  port: 80
}

Versionen:
Node: v12.22.12
NPM: 6.14.16

Aus der Verzweiflung heraus, habe ich nun mithilfe des Dockware Essentials Images eine lokale Dev Umgebung gebaut. Die Performance ist damit aber wirklich relativ schlecht.
Nichts desto trotz kann ich damit nun erstmal leben.

Eventuell findet sich aber ja noch eine Lösung. :slight_smile:

Besten Dank im Voraus.

LG Patrick