ES6 `export * from import`?

JavascriptEcmascript 6Babeljs

Javascript Problem Overview


Is there a syntax using ES6 or ES7 or babel which will allow me to easily bundle together many groups of sub files?

E.g., given:

./action_creators/index.js
./action_creators/foo_actions.js
./action_creators/bar_actions.js

Have index.js import foo and bar actions, then re-export them, so I can

import {FooAction, BarAction} from './action_creators/index.js'

I don't want to have to remember / change references if I were to change which file I've organized the objects themselves into.

Javascript Solutions


Solution 1 - Javascript

Yes, ES6 supports directly exporting imported modules:

export { name1, name2, …, nameN } from …;

export {FooAction, BarAction} from './action_creators/index.js'

You can also re-export all exports of the imported module using the * syntax:

export * from …;

export * from './action_creators/index.js';

More info on MDN.

Solution 2 - Javascript

Default export as Default:

export {default} from './something';

Default export as Named:

export {default as foo} from './something';

Named export as Default:

export {foo as default} from './something';

Named export as Named:

export {foo} from './something';

Named export as Renamed:

export {foo as bar} from './something';

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJordan FeldsteinView Question on Stackoverflow
Solution 1 - JavascriptTimoStaudingerView Answer on Stackoverflow
Solution 2 - JavascriptGerson DinizView Answer on Stackoverflow