generateExports
自动生成模块导出代码,扫描目录并生成 index.ts 导出文件。
函数签名
typescript
function generateExports(
baseDir: string,
options?: GenerateExportsOptions
): string
interface GenerateExportsOptions {
extensions?: string[] // 要包含的文件扩展名,默认 ['.ts', '.tsx']
exclude?: string[] // 要排除的文件名,默认 ['index.ts', '*.test.ts', '*.spec.ts']
exportType?: 'named' | 'default' | 'both' // 导出类型,默认 'named'
}参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
baseDir | string | 是 | - | 要扫描的目录路径 |
options.extensions | string[] | 否 | ['.ts', '.tsx'] | 要包含的文件扩展名 |
options.exclude | string[] | 否 | ['index.ts', '*.test.ts', '*.spec.ts'] | 要排除的文件模式 |
options.exportType | 'named' | 'default' | 'both' | 否 | 'named' | 导出类型 |
返回值
| 类型 | 说明 |
|---|---|
string | 生成的导出代码字符串 |
工作原理
扫描目录:
- 读取指定目录下的所有文件
- 过滤出匹配扩展名的文件
- 排除匹配 exclude 模式的文件
生成导出语句:
- 对每个文件:
- 提取文件名(不含扩展名)
- 根据 exportType 生成对应的导出语句:
named:export * from './filename'default:export { default as FileName } from './filename'both: 同时生成两种导出
- 对每个文件:
格式化代码:
- 按文件名排序
- 添加注释说明(自动生成、不要手动修改)
- 添加空行分隔
返回代码字符串
生成的代码示例:
typescript
// Auto-generated exports
// Do not edit manually
export * from './capitalize'
export * from './normalize'
export * from './template'适用于大型项目的模块导出管理,避免手动维护导出列表。