"Uncaught TypeError: Cannot read property 'call' of undefined" in all. js durch plugin js-code

Hallo,
beim update von shopware 6.0 auf 6.1 musste ich die Struktur einiger Plugins anpassen.
Nun ist aber das Problem, dass der code der hier gespeichert ist plugin root/src/Resources/app/storefront/dist/storefront/js/plugin-name.js bei der all.js zu problemen führt, und auch deinstallieren und neuinstallieren nicht klappt.

Zuvor war die  datei in plugin root/src/Resources/dist/storefront/js/plugin-name.js

  • src
    • Ressources
      • dist
        • storefront
          • js
            • plugin-name.js
      • storefront
        • style
          • scss-datei
        • main.js

So sah die Struktur bezüglich javascript zuvor aus

  • src
    • Ressources
      • app
        • storefront
          • dist
            • storefront
              • js
                • plugin-name.js
          • src
            • scss
              • scss-Datei
            • main.js

Kann es sein, dass hierbei der fehler passiert ist?

So sieht die Fehlermeldung aus.

Ich habe leider auch keine Lösung aktuell dafür, aber wir haben das gleiche Problem mit exakt der gleichen Fehlermeldung und kommen nicht weiter!

In der Entwicklungsumgebung klappt alles einwandfrei, im Livesystem auf einem NGINX Debian Server nicht mehr. Es scheint als würde beim kompilieren via webpack irgendwas fehlen? Es gibt einen github issue hierzu, aber die Lösung (bzw es gibt keine dort) hilft uns nicht:

https://github.com/shopware/platform/issues/152

ggf. kann jemand vom @Shopware Team helfen?
 

Hatte das Problem auch gerade. Der Hinweis in Compiled storefront JS not executed by default installation · Issue #152 · shopware/platform · GitHub war korrekt.

Das hier muss man ändern:

 

Wir haben das problem auch bei einem eigenen Plugin, das gebuildete JS beißt sich mit dem auf dem Server concatenaten JS und wir binden die node_modules korrekt ein…

Wie kann man das vermeiden? Es muss doch möglich sein, eigene node_modules in der Entwicklung zu verwenden, die korrekt im dev-mode gebundlet werden, sodass es keine Interferenzen gibt?

So sieht unser Plugin import aus:

Die Fehlermeldung im prod ist die gleiche wie oben:

Uncaught TypeError: Cannot read property ‚call‘ of undefined" in all. js on line…

 

Vielleicht kannst Du helfen @Moritz Naczenski :)

 

 

I have the same error, Someone with a solution?

Having the same problem still on 6.3.3.1. I commented the closed ticket (Compiled storefront JS not executed by default installation · Issue #152 · shopware/platform · GitHub) hope this will be seen?!

I found the general cause of this issue:

If you compile your plugin JS locally using the Shopware Storefront webpack configuration, it detects that you have a folder called node_modules inside your plugin:

                ...(() => {
                    if (isProdMode) {
                        return {
                            vendor: {
                                test: path.resolve(__dirname, 'node_modules'),
                                name: 'vendors',
                                chunks: 'all',
                            }
                        }
                    }

It doesn’t matter if you use either ../../node_modules or if you add it as a resolve alias in your own plugins storefront/build/webpack.config.js like it’s described in the documentation.
The webpack config of the storefront will match node_modules and extract all those modules into the vendors.js, vendor-node.js and the vendor-shared.js in the dist folder of the Storefront itself.

Which means your plugin only works with this modified JS of the Storefront, which is practically impossible as you can’t force any other user to overwrite the files vendor/shopware/storefront/Resources/app/storefront/dist/js/vendors.js (and the others) when your plugin is being installed.

1 „Gefällt mir“