ich bin neu in der Shopware Entwicklung und arbeite mich gerade in diverse Themen ein.
Dazu möchte ich eine neue „Rule“ im „Rule builder“ anlegen. Es gibt glücklicherweise eine sehr ausführliche Doku dazu inkl. eines ausführbaren Plugins.
Die Doku habe ich soweit verstanden und für mein Beispiel adaptiert. Leider wird mir meine Rule nicht im Admin Bereich angezeigt. Das Beispielplugin „Is lunar eclipse today“ wird jedoch angezeigt.
Der einzige Unterschied, den ich jetzt feststellen konnte, ist die kompilierte custom-rule.js.
Wie wird diese generiert? Die Befehle „bin/console theme:compile“, „bin/console plugin:refresh“ und „bin/console cache:clear“ reichen hier anscheinend nicht aus.
ins Verzeichnis wechseln und „composer install“ ausführen (eventuelle Fehlermeldungen beheben. Ich brauchte überall aktuelle Libraries, aktuell jedoch php 7.4 und nicht php 8)
./psh.phar administration:install-dependencies
./psh.phar administration:build
Leider besteht noch immer das Problem, dass in meinem Plugin keine Datei Namens „src/Resources/public/administration/js/custom-rule.js“ generiert wurde.
Folgende Ausgabe wird erzeugt:
(1/3) Starting
> bin/console bundle:dump
[OK] Dumped plugin configuration.
(2/3) Starting
> PROJECT_ROOT=/shop/custom/plugins/development ENV_FILE=/shop/custom/plugins/development/.env npm run --prefix vendor/shopware/platform/src/Administration/Resources/app/administration/ build
> administration@1.0.0 build
> mode=production webpack
# Compiling with Webpack configuration
# Production mode is activated 🚀
# Plugin "Storefront": Injected successfully
Time: 17307ms
Entrypoint commons = static/js/runtime.js static/css/vendors-node.css static/js/vendors-node.js static/js/vendors-node.js.map static/js/commons.js
Entrypoint app = static/js/runtime.js static/css/vendors-node.css static/js/vendors-node.js static/js/vendors-node.js.map static/css/app.css static/js/app.js
Entrypoint storefront = static/js/runtime.js static/css/vendors-node.css static/js/vendors-node.js static/js/vendors-node.js.map static/css/storefront.css static/js/storefront.js
3857 modules
(3/3) Starting
> bin/console assets:install
Copying files for bundle: FrameworkBundle
Copying files for bundle: MonologBundle
Copying files for bundle: SensioFrameworkExtraBundle
Copying files for bundle: TwigBundle
Copying files for bundle: WebProfilerBundle
Copying files for bundle: DebugBundle
Copying files for bundle: EnqueueBundle
Copying files for bundle: EnqueueAdapterBundle
Copying files for bundle: Framework
Copying files for bundle: System
Copying files for bundle: Content
Copying files for bundle: Checkout
Copying files for bundle: Profiling
Copying files for bundle: Administration
Copying files for bundle: Docs
Copying files for bundle: Storefront
Copying files for bundle: Elasticsearch
Copying files for bundle: DbalKernelPluginLoader
[OK] Successfully copied all bundle files
Duration: 22s
All commands successfully executed!
Was habe ich falsch gemacht? Wie generiere ich die Datei?
PS: hier nochmal ein Auszug des Dateibaums vom Plugin:
Ok, ich hatte das Prinzip vom „Production template“ und „Development template“ nicht verstanden. Damit handelt es sich um kein Template, sondern die Umgebung, in der ich meinen Shop habe. Da ich ein „Production template“ nutze, habe ich nun folgendes ausgeführt:
./bin/build-administration.sh
Auch hier leider wieder keine Verbesserung. Die dringend benötigte Javascript Datei wird einfach nicht erzeugt. Hat jemand eine Idee?
Gibt es niemanden, der helfen kann? Mir ist das Prinzip des Generierens immer noch nicht klar. Was muss man machen, damit eine Plugin public/*.js Datei generiert wird?
Finally, ich habe den Fehler finden können. Nachdem ich im Backend versucht habe das Plugin zu deaktivieren bzw. deinstallieren, habe ich endlich eine Fehlermeldung finden können.