Search code examples
javascriptecmascript-6babeljs

ES6 `export * from import`?


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.


Solution

  • 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.