Jump to content

Magento 2 Require js


Manijayabalan
 Share

Recommended Posts

1 hour ago, brianzinn said:

did you try requirejs(['babylonjs'], { ... });

Hi  brianzinn, Yes i use the following script

 requirejs(['babylonjs'], function(){
    var canvas = document.getElementById("render-canvas");
    var engine = new BABYLON.Engine(canvas);
});

Link to comment
Share on other sites

I've never used magento.  actually, I was just correcting your 'babylon' to 'babylonjs'.  look like it's just require(['babylonjs'], {}... at least on an older version.
https://magento.stackexchange.com/questions/148985/use-require-config-js-to-load-files-needed-on-all-pages
looks like you need to setup a config :)

Link to comment
Share on other sites

  • 3 years later...
  • 2 years later...

To use Babylon.js in Magento 2 with RequireJS and avoid the "Cannot read property 'Engine' of undefined" error:

  1. Download Babylon.js: Get Babylon.js from its website or use a CDN link.

  2. Include Babylon.js: Put the Babylon.js file (like babylon.js or babylon.max.js) in your Magento 2 project, such as app/design/frontend/YourTheme/js.

  3. Configure RequireJS: Set up RequireJS to load Babylon.js correctly. Here’s a basic setup:

// Edit or create a RequireJS configuration file (e.g., requirejs-config.js)
var config = {
    paths: {
        'babylon': 'YourTheme/js/babylon', // Adjust the path as needed
    },
    shim: {
        'babylon': {
            exports: 'BABYLON' // Make sure BABYLON is exported correctly
        }
    }
};

Use Babylon.js: Write your Babylon.js code in your custom JavaScript file (e.g., script.js)

require(['babylon'], function(BABYLON) {
    var canvas = document.getElementById('renderCanvas');
    var engine = new BABYLON.Engine(canvas, true);

    // Example scene creation
    var createScene = function () {
        var scene = new BABYLON.Scene(engine);
        // Add your scene setup here
        return scene;
    };

    var scene = createScene();
    engine.runRenderLoop(function () {
        scene.render();
    });

    window.addEventListener('resize', function () {
        engine.resize();
    });
});
  • Add HTML Markup: Ensure your HTML includes a canvas element for Babylon.js rendering, like <canvas id="renderCanvas"></canvas>.

  • Test: After these steps, clear Magento's cache (php bin/magento cache:clean) and test your store to confirm Babylon.js works without errors.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...