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