amazon-sumerian-hosts icon indicating copy to clipboard operation
amazon-sumerian-hosts copied to clipboard

Remove webpack, use vanilla ES Modules to simplify the project.

Open trusktr opened this issue 1 year ago • 2 comments

Webpack already caused a break (see https://github.com/aws-samples/amazon-sumerian-hosts/pull/181) and generally speaking there's quite a bit of build magic happening that I think detracts from the simplicity of managing the code.

I've got a branch that converted everything to vanilla ES Modules, and it ends up being really simple that way:

  • https://github.com/aws-samples/amazon-sumerian-hosts/pull/183

To do this, I had to update Babylon because Babylon 4 source code is not ESM. However, updating to Babylon 5 caused animations to break, and one model has a deformed jaw line (like those long-time chewing tobacco users). That's tracked here:

  • https://github.com/aws-samples/amazon-sumerian-hosts/issues/155

The Three.js host works perfect on the latest version after a small tweak of one line of code due to a renamed API (*BufferGeometry -> *Geometry).

Apart from Babylon breakage, everything is working nice on vanilla ESM, and all that you need to do to run anything is simply start a static web server; very easy.

I believe this is more ideal for this type of lib (app authors can choose which bundlers and tools they want to optimize their app with, but otherwise having to manage dependencies and build configs makes it all have a higher learning curve and maintenance cost)

trusktr avatar Sep 01 '23 08:09 trusktr

Sidenote: Three.js's global script for loading a global THREE variable containing all Three.js APIs is deprecated and will be removed on release 0.160 (which isn't far off). At that point, the Three.js library will ship only JavaScript modules.

trusktr avatar Sep 06 '23 01:09 trusktr

WIP PR is up:

  • #183

trusktr avatar Sep 06 '23 01:09 trusktr