在ES6 / Babel中重新导出整个模块

时间:2016-09-29 21:01:33

标签: javascript ecmascript-6 babeljs es6-module-loader es6-modules

我们说我有一个我想要再出口的模块:

//exportme.js
export default 'EXPORTME';
export const test = () => console.log('test function');

//reexport.js
export * from './exportme.js'

当我导入reexport.js时,exportme.js的默认值不可用。

//app.js
import reexport from './reexport.js'

console.log(reexport) //undefined

我必须使reexport.js成为以下工作。

export * from './exportme.js'
export default from './exportme.js'

是否有更简单的方法可以将其整合到一个语句中?

export default, * from './exportme.js'不起作用。

我正在使用最新的babel transform-export-extensions

2 个答案:

答案 0 :(得分:2)

  

exportme.js的默认设置不可用

是的,星级导出不会重新导出默认导出。 export * from …的目的是允许从多个模块重新导出,从多个模块导出default只会导致冲突。因此,您必须明确指定它(如果您需要它,通常没有默认导出和命名导出)。

  

是否有更简单的方法可以将其整合到一个声明中?

不,你拥有的两条线路是可行的。

答案 1 :(得分:2)

正如Bergi所写,使用ES 6导出无法在一行中完成此操作。但是,您可以只需要要重新导出的模块,并将结果分配给module.exports

module.exports = require('./exportme.js')