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

Re-Exporting entire module in ES6/Babel

本文关键字:新导出 模块 ES6 Babel      更新时间:2023-09-26

假设我有一个要重新导出的模块:

//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

exportme.js的默认值不可用

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

是否有更简单的方法来做到这一点,或者可以将其合并到一个语句中?

不,你有两行是正确的。

正如Bergi所写的那样,使用ES 6导出无法在一行中完成此操作。但是,您可以简单地要求要重新导出的模块并将结果赋值给module.exports:

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