Which shows the how the backward compatability argument for default export/imports doesn't stand up.
If you want to import `module.exports` then use the the `module` form if you want named imports use the named form. Default import/exports are generating nothing more then complexity, confusion and not serving their intended goals. On Mon, Jul 21, 2014 at 3:18 PM, Calvin Metcalf <calvin.metc...@gmail.com> wrote: > 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 <off...@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 >> <jdop...@yahoo-inc.com> wrote: >> > >> >> On Saturday, July 19, 2014 1:53 PM, Brian Di Palma <off...@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@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss > > > > > -- > -Calvin W. Metcalf _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss