我有一个名为modules.js
的文件,按照模块名称(遵循ES6在索引文件中导出/导入的方式),导出所有模块的default
导出:
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
中,我想要导入这个模块包。我希望从module.js
中导入从a到z的导出变量,以便在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
访问变量... 我觉得这不会花费太多。 - Mohitimport * as foo from ...
时,拥有一个模块命名空间对象并不会增加额外的成本。事实上,通过拥有它,引擎可以提前知道变量来自哪里,从而更好地优化您的代码。 - loganfsmyth