Specifically, because ES6 modules are loaded, resolved and evaluated asynchronously, it will not be possible to
require() an ES6 module. The reason is because
require() is a fully synchronous function. It would be far too disruptive a change to the ecosystem for us to modify the semantics of
require() to allow it to do asynchronous loading. We are therefore considering the possibility of implementing a
require.import() function that is modeled after the proposed ES6
import()function (see here). This function would return a
Promise that completes when the ES6 module is loaded. This is not optimal, but it would allow ES6 modules to be used from within existing CommonJS style Node.js code.