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

(Video) Calling jarallax-wrapper and loading on demand librairies #865

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

Amadeco
Copy link

@Amadeco Amadeco commented Feb 18, 2024

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 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 to this commit to suggest to load on demand librairies (jarallaxVideo, vimeoWrapper) after the check of the data background-type.
@engcom-Hotel engcom-Hotel self-requested a review November 22, 2024 11:25
@engcom-Hotel
Copy link
Collaborator

@magento run all tests

@engcom-Hotel
Copy link
Collaborator

Hello @Amadeco,

Thanks for the contribution!

We request you to please provide us with some more details on the replacement of jarallax with jarallax-wrapper. We can pick this PR as a feature request. But we need this information to proceed.

Thanks

@Amadeco
Copy link
Author

Amadeco commented Nov 27, 2024

Hello,

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Changes Requested
Development

Successfully merging this pull request may close these issues.

2 participants