Ich habe mehrere JS override Registrierungen des listing.plugin.js von Shopware in verschiedenen Plugins, und auch unter anderem einem Theme Plugin.
Szenario 1
Theme Plugin aktiv -> Theme gewinnt immer -> die anderen Plugin overrides werden nicht initiiert und ausgeführt
Szenario 2
Theme Plugin inaktiv -> Scheinbar gewinnt das Plugin dessen JS zuerst compiliert wird. JS override von Plugin 1 wird initialisiert und ausgeführt. Plugin 2 nicht.
Szenario 3
nur Plugin 2 ist aktiv -> JS override von Plugin 2 wird initialisiert und ausgeführt.
Leicht nachzuvollziehen mit folgenden CodeSchnippseln in allen 3 Plugins. Anonymisiert, und ohne Funktionalität natürlich.
import Plugin1 from './plugins/listing/plugin-1.plugin';
PluginManager.override('Listing', Plugin1, '[data-listing]');
import ListingPlugin from 'src/plugin/listing/listing.plugin';
export default class Plugin1 extends ListingPlugin {
init() {
console.log(init 1);
super.init();
}
}
Bug, gewünscht, oder anders lösbar?
Das ich im Falle das alle 3 Plugins von mir sind, diese zusammenführen kann ist mir klar. Aber wenn eins davon ein Community Plugin ist führt das zu großen Problemen.