import type { Plugin } from '../../compiled/vite'; /** * Transform import options interface * Compatible with preset-win transformImport parameters */ export interface ITransformImportOptions { /** 库名称 */ libraryName: string; /** 库目录,支持函数和字符串 */ libraryDirectory?: string | ((name: string) => string); /** 自定义名称转换函数 */ customName?: string | ((name: string) => string); /** 自定义样式名称转换函数 */ customStyleName?: string | ((name: string) => string); /** 样式库目录 */ styleLibraryDirectory?: string; /** 样式导入方式 */ style?: boolean | 'css' | ((name: string) => string); /** 驼峰转换为短横线命名 */ camelToDashComponentName?: boolean; /** 驼峰转换为短横线命名 (兼容 babel-plugin-import) */ camel2DashComponentName?: boolean; /** 是否转换为默认导入 */ transformToDefaultImport?: boolean; /** * 是否启用 tree shaking * - true: 强制启用 * - false: 强制禁用 * - undefined: 自动判断(白名单库默认启用) */ treeShaking?: boolean; /** 自定义转换函数 */ customTransform?: (importName: string, libraryName: string) => { importPath: string; stylePath?: string; }; /** 包含文件匹配规则 */ include?: RegExp | ((id: string) => boolean); /** 排除文件匹配规则 */ exclude?: RegExp | ((id: string) => boolean); /** 是否启用 AST 缓存 (默认: 开发环境启用) */ enableCache?: boolean; /** 缓存时间 (毫秒,默认: 5000ms) */ cacheTime?: number; /** 最大缓存数量 (默认: 100) */ maxCacheSize?: number; /** 是否启用性能监控 */ enablePerformanceMonitor?: boolean; } /** * Transform import plugin for Vite * Similar to babel-plugin-import functionality */ export default function transformImportPlugin(options: ITransformImportOptions | ITransformImportOptions[]): Plugin;