[Issue] (Video) Calling jarallax-wrapper and loading on demand librairies #878
Description
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.