Skip to content

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'
}

参数

参数名类型必填默认值说明
baseDirstring-要扫描的目录路径
options.extensionsstring[]['.ts', '.tsx']要包含的文件扩展名
options.excludestring[]['index.ts', '*.test.ts', '*.spec.ts']要排除的文件模式
options.exportType'named' | 'default' | 'both''named'导出类型

返回值

类型说明
string生成的导出代码字符串

工作原理

  1. 扫描目录

    • 读取指定目录下的所有文件
    • 过滤出匹配扩展名的文件
    • 排除匹配 exclude 模式的文件
  2. 生成导出语句

    • 对每个文件:
      • 提取文件名(不含扩展名)
      • 根据 exportType 生成对应的导出语句:
        • named: export * from './filename'
        • default: export { default as FileName } from './filename'
        • both: 同时生成两种导出
  3. 格式化代码

    • 按文件名排序
    • 添加注释说明(自动生成、不要手动修改)
    • 添加空行分隔
  4. 返回代码字符串

生成的代码示例

typescript
// Auto-generated exports
// Do not edit manually

export * from './capitalize'
export * from './normalize'
export * from './template'

适用于大型项目的模块导出管理,避免手动维护导出列表。