5

比方说,我有一个模块,我想重新出口:再出口在整个模块中ES6 /巴贝尔

//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'不起作用。

我使用最新的巴贝尔与transform-export-extensions

回答

2

默认从exportme.js不可

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

有没有更简单的方法来做到这一点,或者这可以合并成一个声明?

不,你有两条线是要走的路。

2

正如Bergi写道,使用ES 6导出无法在一行中执行此操作。你可以,但是,仅仅需要你想重新出口和分配结果module.exports模块:

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

这是聪明的作品。不幸的是,我试图坚持不使用require! – wlingke