In @babylon/core version 6.13.0 (installed with npm), there is one file that contains an import with a double forward slash that is preventing Babylon.js from running with some servers.
The file in question is:
@babylonjs/core/Physics/v1/Plugins/cannonJSPlugin.js
Line 4:
import { PhysicsImpostor } from "..//physicsImpostor.js";
Some servers will interpret “//” as “/../” (parent directory), which I believe is unintended. If I erase one of the slashes, my server can load Babylon.js without problems. If I keep the double slash, my server cannot find the scripts. See image below:
I tested three different servers:
- VSCode’s Live Server - Does not work (see image)
- simple-http-server - Does not work (see image)
- A simple Node.js server I implemented myself - Works perfectly
I’m using Windows 11.
How to reproduce:
- In an empty directory:
npm init - Install @babylonjs/core with npm:
npm install @babylonjs/core - Create a file
index.htmlwith the following content exactly:<script type="module">import * as BABYLON from "./node_modules/@babylonjs/core/index.js";</script> - Use VSCode with the Live Server extension, start a live server, and open the URL in any browser
Now you can open the browser’s console and see the errors like in the image above.
Then open the file ./node_modules/@babylonjs/core/Physics/v1/Plugins/cannonJSPlugin.js and remove one of the two slashes in line 4 (it should then look like this: import { PhysicsImpostor } from "../physicsImpostor.js";). Now refresh the web page and there will be no errors.
