Storefront:build - Plugin Script wird ignoriert?

Hey, ich wollte mal ein Script einfügen:

custom/plugins/MeinPlugin/src/Resources/src/script/base.js

Ich sehe den inhalt im kompilierten

http://192.168.33.10/theme/2f062e8b27b61c696480d4b2d7891a3f/js/all.js

nicht.

Auch wenn ich einen Syntaxfehler in meinem Script einbaue, gibt es keine Fehlermeldung in der Console. Mache ich irgendetwas falsch?

Wie ist das generell? Kann ich die JS Klassen aus dem Storefront-Core einfach in meinen Plugin-Scripts weiter verwenden (zb HttpClient etc), unterscheidet sich der relative Pfad zwischen der Dev und der Production Version von SW6?

In administration:build funktioniert alles, da nutze ich schon das Workaround für die SASS Files, jedoch auch schlecht, da ich die Bootsrap Variablen nicht nutzen kann.

LG

Gab es hierfür schon eine Lösung? Stehe vor demselben Problem.

Mein Script liegt allerdings unter

custom/plugins/MeinPlugin/src/Resources/app/storefront/src/main.js

In der main.js möchte ich den HttpClient nutzen um per Ajax auf meine API zuzugreifen:

import HttpClient from 'src/service/http-client.service';

var loadEnd = function(responseText) {
    console.log(responseText);
};

var httpClient = new HttpClient(window.accessKey, window.contextToken);
httpClient.post('/api/v1/meinplugin/foobar', null, loadEnd);

 

Habe das gleiche Problem seit dem Update von 6.1.2 auf 6.1.3. Ich kann storefront-build.sh ohne Fehler aufrufen, allerdings ist am Ende keine kompilierte Datei vorhanden. Ich nutze ebenfalls die main.js im gleichen Pfad wie bei ansgar.

Habe den Fehler gefunden. In der 6.1.3 wurde der

asset:install

Befehl aus build_storefront.sh entfernt!

Meinst du die hier? development/build.sh at v6.1.3 · shopware/development · GitHub

Da steht das assets:install noch drin.

Wenn ich das richtig verstehe kopiert assets:install auch nur Dateien aus

custom/MeinPlugin/src/Resources/public/*

hier hin:

public/bundles/meinplugin/

Aber alles gefährliches Halbwissen, zumal ich meine main.js auch nicht in die all.js hinein bekomme.

Ah, du meinst wohl diesen Commit aus der production vom 25.02.: NTR - Fix pipeline · shopware/production@8dd7a25 · GitHub

Ja, da ist in der Tat an der Zeile was geändert worden. Ich weiß aber nicht was das hinzugefügte [[${CI}]] || bedeutet…

Mittlerweile funktioniert das „psh.phar storefront:build“ bei mir, die all.js enthält danach meinen Code aus

custom/plugins/MeinPlugin/src/Resources/app/storefront/src/main.js

Das shopware-development Template habe ich dafür aber auch in einem Ubuntu 18 eingerichtet, welches unter Win10 in einer HyperV Maschine läuft.

und wie macht ihr das ohne Dev Template sondern in Production? da gibts ja kein psh.phar

Das frage ich mich auch, bisher tüfteln wir aber nur im Staging bzw. Dev System. Dass man auf Dauer im dev das storefront:build ausführt und dann das public/theme Verzeichnis auf production deployed kommt mir falsch vor.

@ansgar schrieb:

Das frage ich mich auch, bisher tüfteln wir aber nur im Staging bzw. Dev System. Dass man auf Dauer im dev das storefront:build ausführt und dann das public/theme Verzeichnis auf production deployed kommt mir falsch vor.

Gibt es hier schon eine Lösung? Uns ist jetzt auch aufgefallen, dass die assets im production Template einfach fehlen / nicht generiert werden. 

Im Dev werden beim compilen neue Verzeichnisse mit den kompilierten Scripts erstellt, diese musst du natürlich vom Dev System wieder ziehen :) 

Ich mache das mittlerweile so im PROD:

  • bin/build-storefront.sh - beim ersten mal auch bin/build-js.sh (?)
  • bin/console theme:compile
  • bin/console cache:clear

Vom DEV etwas kompiliertes auf PROD zu ziehen, kann Probleme verursachen, sofern zB im DEV noch Plugins in der Entwicklung sind.

1 „Gefällt mir“

Bei uns fehlen weiterhin die Fonts -> bundles/storefront/assets/font/Inter-Bold.woff2 net::ERR_ABORTED 404

 

Jemand hier ne Idee?

Die Datei existiert bei mir. Daher schieß ich mal ins Blaue:

  • build-storefront.sh ausgeführt?
  • Theme kompiliert?
  • Custom Theme (Bug)?
  • Liegen andere Dateien im selben Verzeichnis, zB Inter-Bold.woff, Inter-Italic.woff2, etc.? Bei mir liegen 6 Fonts jeweils als *.woff und *.woff2 da
  • Verzeichnis-Rechte in public/* reichen aus um Dateien dorthin zu kopieren?

@Misengo schrieb:

Bei uns fehlen weiterhin die Fonts -> bundles/storefront/assets/font/Inter-Bold.woff2 net::ERR_ABORTED 404

 

Jemand hier ne Idee?

Hierzu gibt es einen bekannten Bug: Shopware Issuetracker