diff --git a/lib/esm.js b/lib/esm.js index 9346f4041..d0a2a4d46 100644 --- a/lib/esm.js +++ b/lib/esm.js @@ -20,6 +20,13 @@ load.metadata.format = 'esm'; + if (load.metadata.deps) { + var depInject = ''; + for (var i = 0; i < load.metadata.deps.length; i++) + depInject += 'import "' + load.metadata.deps[i] + '"; '; + load.source = depInject + source; + } + if (loader.transpiler === false) { // we accept translation to esm for builds though to enable eg rollup optimizations if (loader.builder) diff --git a/lib/register.js b/lib/register.js index 15b4899a8..96a6a2092 100644 --- a/lib/register.js +++ b/lib/register.js @@ -285,8 +285,7 @@ function createEntry() { var importerModule = module.importers[i]; if (!importerModule.locked) { var importerIndex = indexOf.call(importerModule.dependencies, module); - if (importerModule.setters[importerIndex]) - importerModule.setters[importerIndex](exports); + importerModule.setters[importerIndex](exports); } } @@ -515,6 +514,9 @@ function createEntry() { // first we check if this module has already been defined in the registry if (loader.defined[load.name]) { entry = loader.defined[load.name]; + // don't support deps for ES modules + if (!entry.declarative) + entry.deps = entry.deps.concat(load.metadata.deps); entry.deps = entry.deps.concat(load.metadata.deps); }