将一个目录中的所有文件分组在一个别名下

Grouping all files from one directory under one alias

假设我有这个目录结构:

src
├──Utils
|  ├──File2.ts
|  ├──File3.ts
index.ts
tsconfig.json

我知道您可以像这样在 tsconfig.json 中设置路径别名:

{
    "compilerOptions": {
        .....
        "paths": {
            "Utils/*": ["src/Utils/*"],
        }
    }
}

然后我可以在 index.ts:

中使用这些别名
import { File2 } from 'Utils/File2';
import { File3 } from 'Utils/File3';

我相信你注意到了冗余:即便如此,如果 File2File3 在同一个文件夹中,我们必须为 [=18] 中的每个文件编写 import =]文件夹。

是否可以将这些文件分组在一个导入下并像下面的示例一样使用它?

import { File2, File3 } from 'Utils';

我试过这个配置,但它不起作用:

{
    "compilerOptions": {
        "paths": {
            "Utils": ["src/Utils/*"],
        }
    }
}

编辑

此外,我不想使用像 index.ts 这样的桶文件,我从 Utils 文件夹中导出所有内容。

这可以通过使用桶文件来解决。在 /Utils 中创建一个 index.ts 文件并添加

export * from './File2';
export * from './File2';

在你的tsconfig

{
    "compilerOptions": {
        "paths": {
            "Utils": ["src/Utils"]
        }
    }
}

不使用桶文件就无法对这些导入进行分组。但是,如果您不想像 barrelsby 那样手动维护它们的麻烦,那么有些库可以为您生成这些文件。或者,您可以编写自己的脚本以使它们保持最新。