module.exports = and ES6 Module Interop in Node.js
The question: how can we use ES6 modules in Node.js, where modules-as-functions is very common? That is, given a future in which V8 supports ES6 modules:
- How can authors of function-modules convert to ES6
exportsyntax, without breaking consumers that do
- How can consumers of function-modules use ES6
importsyntax, while not demanding that the module author rewrites his code to ES6
@wycats showed me a solution. It involves hooking into the loader API to do some rewriting, and using a distinguished name for the single export.
This is me eating crow for lots of false statements I've made all over Twitter today. Here it goes.