在 ES6/Babel 中重新导出整个模块
Re-Exporting entire module in ES6/Babel
假设我有一个要重新导出的模块:
//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
The default from exportme.js
is not available
是的,默认导出不会被 star 导出重新导出。 export * from …
的目的是允许从多个模块重新导出,从多个模块导出 default
只会导致冲突。因此,您必须明确指定它(如果您需要它,通常没有默认导出和命名导出)。
Is there an easier way to do this or can this be consolidated into one statement?
不,你有两条线是要走的路。
正如 Bergi 所写,无法使用 ES 6 导出在一行中完成此操作。但是,您可以简单地要求要重新导出的模块并将结果分配给 module.exports
:
module.exports = require('./exportme.js')
假设我有一个要重新导出的模块:
//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
The default from
exportme.js
is not available
是的,默认导出不会被 star 导出重新导出。 export * from …
的目的是允许从多个模块重新导出,从多个模块导出 default
只会导致冲突。因此,您必须明确指定它(如果您需要它,通常没有默认导出和命名导出)。
Is there an easier way to do this or can this be consolidated into one statement?
不,你有两条线是要走的路。
正如 Bergi 所写,无法使用 ES 6 导出在一行中完成此操作。但是,您可以简单地要求要重新导出的模块并将结果分配给 module.exports
:
module.exports = require('./exportme.js')