The use case is simple: I just want to export an object with the name just as it was imported.
for example:
import React from 'react';
export React;
but this does not work. I have to write:
import React from 'react';
export const React = React;
But this is odd. What is the right way to do this?
UPDATED:
Thanks for helps and references. I have solved out my problem with many clues. I'd like to share some common cases for me and the solutions.
import d, {obj} from '...';
export {obj, d};
export {obj as name1, d as name2};
export * from '...';
export * as name1 from '...';
export {a, b as name1} from '...';
export {default} from '...';
export {default as name1} from '...';
I often do the following in index.js files that compose several files:
export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';
This blog entry provides some nice additional examples.
You should be aware this eslint-rule when accessing these exported imports. Basically, in another file, you shouldn't:
import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error
You should do this:
import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok