module-deps
module-deps copied to clipboard
[WIP] ES modules
Adds node-style experimental ES modules support. pass esm: true to interpret .mjs files as ES modules.
ES modules get a rec.esm property so that later parts in the browserify pipeline can identify them. rec.esm is an object containing properties:
rec.esm.imports- array of imported bindingsrec.esm.exports- array of exported bindings
Imported bindings are objects of the form:
binding.from- source module (value"a"inimport "a")binding.import- imported bindingbinding.as- local name for the binding (often the same asbinding.import)binding.esm- true if the source module is also an ES module, false if it is a commonjs module.
Exported bindings are objects of the form:
binding.export- local name of the binding (can be undefined ifexport default-ing an unnamed expression)binding.as- public name of the binding
Transforms can check opts._flags.esm to see if the module being transformed is an ES module (true) or a CommonJS module (false). It might be useful if transforms could also set opts._flags.esm to mark their output as an ES module, for languages that compile to ES modules.
@goto-bus-stop any plans to continue on this PR ?