Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue] (Video) Calling jarallax-wrapper and loading on demand librairies #878

Open
m2-assistant bot opened this issue Nov 28, 2024 · 1 comment · May be fixed by #865
Open

[Issue] (Video) Calling jarallax-wrapper and loading on demand librairies #878

m2-assistant bot opened this issue Nov 28, 2024 · 1 comment · May be fixed by #865

Comments

@m2-assistant
Copy link

m2-assistant bot commented Nov 28, 2024

This issue is automatically created based on existing pull request: #865: (Video) Calling jarallax-wrapper and loading on demand librairies


I needed to replace jarallax with jarallax-wrapper to make it work with a custom Js bundler (Magepack Bundle) Indeed, without jarallax-wrapper, window.jarallax is not populated and return an error (undefined var).

I take advantage of this commit to suggest to load on demand libraries.

Additional Details

At the time, I was using a bundler for production (https://github.com/magesuite/magepack) to manage JavaScript files. This issue is isolated to that setup.

When I compiled the files, the jarallax object was not defined, likely due to a context issue or the way the bundler handles modules (specifically, the order of the JS files).

Magento provide the jarallax-wrapper module to call the jarallax class and attach it to the window (global) object, which is why I submitted this issue in the first place to solve mine.

But the ways the requirejs-config file is declared (shim), Magento_PageBuilder/js/resource/jarallax/jarallax-video would be sufficient :

shim: {
    'Magento_PageBuilder/js/resource/jarallax/jarallax-video': {
        deps: ['jarallax-wrapper', 'vimeoWrapper']
    }
}

(it would be great to load vimeoWrapper and vimeo only on demand too)

Nowadays, with HTTP/2 and HTTP/3, bundlers are not always ideal for frontend performance which generate big JS files. It's up to you to decide whether addressing this is still relevant.

@afourmeaux
Copy link

yes ! those two scripts constantly show up in pagespeed notation because they are unused but are still initialized since Magento automatically require them before checking if any element using them are present.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant