SW 6.6.0.0-rc-2 watch-storefront Probleme

Hallo zusammen.

Ich hab Probleme mit dem watch-storefront.sh Skript und dem 6.6 RC Release (Docker/Dockware).
Sobald ich das Frontend aufrufe bricht das Skript ab und meldet:

node:events:496
throw er; // Unhandled ‚error‘ event
^

Error: connect ECONNREFUSED 127.0.0.1:9999
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1595:16)
Emitted ‚error‘ event on ClientRequest instance at:
at ClientRequest.onerror (node:internal/streams/readable:1026:14)
at ClientRequest.emit (node:events:518:28)
at Socket.socketErrorListener (node:_http_client:495:9)
at Socket.emit (node:events:518:28)
at emitErrorNT (node:internal/streams/destroy:169:8)
at emitErrorCloseNT (node:internal/streams/destroy:128:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
errno: -111,
code: ‚ECONNREFUSED‘,
syscall: ‚connect‘,
address: ‚127.0.0.1‘,
port: 9999
}

Hat jemand eine Idee woran das liegen könnte?

Genau das Problem habe ich leider auch. Suche schon seit 2-3 Stunden nach einer Lösung. Bei SW 6.5 funktionieren die ganzen Projekte.

Vermutlich brauchen wir einen RC3. Ist aber nur ein Bauchgefühl :slight_smile:

Ich bin auch tiefer in die Webpack-Config gegangen, aber kann keine großen Unterschiede zu SW 6.5 sehen. Via Dockware nutze ich Node 20.11 und PHP 8.2.

Ansonsten geht alles. „Build storefront“, „Build administration“ & „Watch administration“. Nur nicht „Watch storefront“

Noch eine Info:
Ich triggere die normalen bin/build-storefront.sh, bin/watch-storefront.sh, bin/build-administration.sh & bin/watch-administration.sh Dateien von Shopware. Keine extra Logik oder so.

Noch ein Hinweis:
Bei Webpack gibt es unter 127.0.0.1:9999 keine Antwort via „curl 127.0.0.1:9999“, aber in der 6.5 Version gibt es HTML Output.

Bekomme als Fehler: curl: (7) Failed to connect to 127.0.0.1 port 9999 after 0 ms: Connection refused

Vielleicht startet Webpack die Server nicht richtig mit der Config?

RC3 Release wird glaube ich nix bringen.
Da du auch Dockware verwendest und es reproduzieren kannst, vermute ich es liegt an Dockware.

Im Slack-Channel beschwert sich bisher auch niemand über das Problem.
Die arbeiten wohl eher mit Devenv was ich bei mir leider nicht zum Laufen bekomme.

Hab bei dockware ein Ticket angelegt.

Das Bauchgefühl war doch richtig.

Hallo zusammen, das Problem scheint ja behoben zu sein, ich bekomme es bei mir jedoch immer noch nicht zum Laufen und denke, dass es eventuell hiermit zusammen hängt. Ich versuchte es die letzten Tage mit allen 6.6 Version, zuletzt mit der heute erschienenden 6.6.0.2 Dockware dev. Die 6.5. Versionen funktionieren.
Alles wird über eine docker-compose neu erstellt, ports werden freigegeben. Ähnlich wie: examples/basic-dev-setup/docker-compose.yml at master · dockware/examples · GitHub

Als Fehlermeldung bekomme ich folgendes:

[webpack-dev-server] 
WebSocketClient.js:13 WebSocket connection to 'ws://localhost:9999/ws' failed:

[webpack-dev-server] 
Event {isTrusted: true, type: 'error', target: WebSocket, currentTarget: WebSocket, eventPhase: 2, …} isTrusted : true bubbles : false cancelBubble : false cancelable : false composed : false currentTarget : WebSocket {url: 'ws://localhost:9999/ws', readyState: 3, bufferedAmount: 0, onopen: ƒ, onerror: ƒ, …} defaultPrevented : false eventPhase : 0 returnValue : true srcElement : WebSocket {url: 'ws://localhost:9999/ws', readyState: 3, bufferedAmount: 0, onopen: ƒ, onerror: ƒ, …} target : WebSocket {url: 'ws://localhost:9999/ws', readyState: 3, bufferedAmount: 0, onopen: ƒ, onerror: ƒ, …} timeStamp : 260967.7000000002 type : "error"

Jemand ne Idee?

Viele Dank vorab

Okay ich hab eine Lösung für mein problem gefunden.
In der Datei: shopware/src/Storefront/Resources/app/storefront/build/live-reload-server/index.js at trunk · shopware/shopware · GitHub
musste ich in Zeile 25 server.start wie in der Vorgängerversion zu server.listen ändern.

Thank you!!
The Problem was driving me nuts…

Anyway, if anybody wants to use the TM184 fix as a composer-patch, here’s the diff:
./path/to/patches/diffs/shopware-storefront-dev-server-websocket-listen.diff:

index bf4cda2..b3703c2 100644
--- a/Resources/app/storefront/build/live-reload-server/index.js
+++ b/Resources/app/storefront/build/live-reload-server/index.js
@@ -22,7 +22,7 @@ module.exports = function createLiveReloadServer() {
         // start the normal webpack dev server for hot reloading the files
         const server = new WebpackDevServer(devServerOptions, compiler);

-        server.start(devServerOptions.port, '0.0.0.0', (err) => {
+        server.listen(devServerOptions.port, '0.0.0.0', (err) => {
             if (err) {
                 reject(err);
             }

./path/to/patches/register.json:

{
    "patches": {
        "shopware/storefront": {
            "Bugfix: New webpack dev server breaks websockets, use old way again": "./path/to/patches/diffs/shopware-storefront-dev-server-websocket-listen.diff"
        }
    }
}

Although I’m sure there’s a better way to fix it, as listen is deprecated.
But I didn’t find any documentation on how start is supposed to actually work.

1 „Gefällt mir“

Exactly the patch works as a charm. Or you could take a look on the latest modifications from Shopware.