Importing modules using ES6 syntax and dynamic path [duplicate] Importing modules using ES6 syntax and dynamic path [duplicate] node.js node.js

Importing modules using ES6 syntax and dynamic path [duplicate]


No, this is not possible. ES6 modules need to be able to statically resolve their dependencies, without executing module code, so that import statements do work reliably. The module specifier must be a string literal.

However, the module loader of your choice should support dynamic loading of modules with variable names. You wouldn't be able to get a bound app identifier in your module scope however (and cannot reexport it), it typically would only be available in a callback or so.


ES6 imports are declarative and meant for static analysis. They cannot be dynamic.

Generally the expectation would be that if you had some conditional imports, it would be the responsibility of the underlying path resolution logic to decide what module to load based on some static path.

That or you'd use the async module loader rather than declarative imports.