restrictions on module import export names

Kevin Smith zenparsing at
Thu Jan 30 06:28:26 PST 2014

> var projs = [
>   require('./projections/merc'),
>   require('./projections/longlat')
> ];
With ES6 modules, you might do something like this:

    import merc from "./projections/merc";
    import longlat from "./projections/longlat";

    var projs = [merc, longlat];

Or if you're importing the modules themselves:

    module merc from "./projectsions/merc";
    module longlat from "./projectsions/longlat";

    var projs = [merc, longlat];

> is there a reason [import] can't be an expression which evaluates to
> either an object with all the [exports] or the default export when it's
> used as an AssignmentExpression (I think I'm using that one right).
Yes.  ES6 modules are "statically linked", meaning that all of the
non-local (imported) bindings are resolved *before the module begins
executing*.  It's an important distinction.

Because of this difference, you can expect usage patterns to turn out
somewhat different from the "require" patterns we are used to seeing in
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list