Quantifying Default Exports

Calvin Metcalf calvin.metcalf at gmail.com
Mon Jul 21 07:18:23 PDT 2014


similar discussion at systemjs
https://github.com/systemjs/systemjs/issues/131 which boils down to if a
CJS module imports an ES6 module that has a key named default, what should
the default behavior be.


On Mon, Jul 21, 2014 at 10:05 AM, Brian Di Palma <offler at gmail.com> wrote:

> It's using traceur and building the modules to CJS, the project uses
> other non transpiled CJS modules.
>
> The only thing traceur could do here is compile the imports into a
> check for the named export `default` and use that if it exists.
> If it doesn't then simply return the CJS module object.
>
> Here is the output from traceur
>
> https://github.com/briandipalma/global-compiler/blob/master/out/index.js
>
> The relevant line would be
>
> `var minimist = require('minimist');`
>
> For default import from a CJS module you'd need to output
>
> `
> var minimist = require('minimist');
> if (minimist.default) {
>  minimist = minimist.default;
> }
> `
>
> Is that what you think traceur should do?
>
> On Mon, Jul 21, 2014 at 2:34 PM, Juan Ignacio Dopazo
> <jdopazo at yahoo-inc.com> wrote:
> >
> >> On Saturday, July 19, 2014 1:53 PM, Brian Di Palma <offler at gmail.com>
> wrote:
> >
> >> When an npm package exports a named identifier it's trivial to use it
> > in an ES6 module.
> >
> > import {
> >     parse,
> >     print
> > } from 'recast';
> >
> >> When on the other hand it sets its export on `module.exports` default
> > exports provide no help at all.
> >
> > This sounds like an issue in your transpiler. Ideally CJS modules inside
> projects written using ES6 modules should be treated as modules that
> default export an object. CJS modules don't have the same static semantics
> as their ES6 counterpart, so they should be treated as mutable objects. An
> ES6 Loader would do the same when loading CJS modules.
> >
> > Juan
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>



-- 
-Calvin W. Metcalf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140721/cf9f49cc/attachment.html>


More information about the es-discuss mailing list