steal icon indicating copy to clipboard operation
steal copied to clipboard

Allow CJS-style AMD to execute in require-order.

Open matthewp opened this issue 6 years ago • 1 comments

Traditionally AMD executes all dependencies before executing a module. CommonJS, on the other hand, executes in require-order. That is, require determines the execution order.

When transpiling CJS to AMD this can cause a problem where a module written for CJS that contains a circular dependency where it depends on require execution order can break.

This change allows for CJS-style AMD modules to execute in require-order. There is a flag in Steal, executingRequire that triggers this. We turn this flag on in a CJS-style AMD module, and only execute dependencies up front, if those dependencies are listed before the first exports, module, or require dependency.

Closes #1483

matthewp avatar Dec 11 '18 18:12 matthewp

I updated and the error below is what I got when using a dev-bundle:

screen shot 2018-12-12 at 9 57 45 am

I also tried a built version and got the following error: screen shot 2018-12-12 at 10 00 31 am

mjstahl avatar Dec 12 '18 15:12 mjstahl