一尘不染

是否可以使用通配符从目录中的所有文件导入模块?

javascript

使用ES6,我可以从这样的文件导入多个导出:

import {ThingA, ThingB, ThingC} from 'lib/things';

但是,我喜欢每个文件有一个模块的组织。我最终得到这样的进口:

import ThingA from 'lib/things/ThingA';
import ThingB from 'lib/things/ThingB';
import ThingC from 'lib/things/ThingC';

我希望能够做到这一点:

import {ThingA, ThingB, ThingC} from 'lib/things/*';

或类似的名称,并且每个文件都包含一个默认导出,并且每个模块的名称与其文件相同。

这可能吗?


阅读 313

收藏
2020-04-25

共1个答案

一尘不染

我认为这不可能,但是模块名称的解析取决于模块加载器,因此可能有支持此功能的加载器实现。

在此之前,您可以使用lib/things/index.js仅包含以下内容的中间“模块文件”

export * from 'ThingA';
export * from 'ThingB';
export * from 'ThingC';

它会让你做

import {ThingA, ThingB, ThingC} from 'lib/things';
2020-04-25