【发布时间】:2018-09-26 11:44:46
【问题描述】:
我有一个文件modules.js,它按模块名称从我的模块中导出所有default 导出(在ES6 exporting/importing in index file 之后):
export { default as a } from './a/a'
export { default as b } from './b/b'
...
export { default as y } from './y/y'
export { default as z } from './z/z'
在我的app.js 中,我想导入这个模块包。
我希望从 a...z 导出的变量从 module.js 导入,这样我就可以在 app.js 中使用它们。
显然我不想这样做
import { a, b, c, d, ... , x, y, z } from './modules/modules'
因为这非常冗长,每当我在module.js 中添加一个模块时,我还必须更改app.js 中的import。
我试过了
import * from './modules/modules'
但变量在app.js 中不可用。
问题:我如何简单地导入 所有命名的导出 在它们的导出名称下?
示例模块./modules/a/a.js:
export default function a() {
// whatever
}
【问题讨论】:
-
你可以这样做
import m from './modules/modules'并以m.a或m.b的形式访问变量...我认为它不会花费很多。 -
@Mohit 这可能不会花费很多,但是如果没有所有者对象就不能导入吗?
-
拥有来自
import * as foo from ...的模块命名空间对象无需额外费用。事实上,有了它,引擎可以提前知道变量来自哪里,从而更好地优化你的代码。 -
@connexo 据我所知,在当前版本的 ECMAScript 6 中没有任何可能实现您所期望的方式
标签: javascript ecmascript-6 es6-modules javascript-import