UNPKG

universal-build-plugin-version-check-test

Version:

一个支持多种前端构建工具的通用插件框架,包括 Vite、Webpack、Rollup 等,提供版本检查、构建优化等功能

92 lines 2.89 kB
export interface PluginOptions { /** 插件名称 */ name?: string; /** 是否启用调试模式 */ debug?: boolean; /** 是否生成版本文件 */ generateVersionFile?: boolean; /** 版本信息选项 */ versionInfo?: VersionInfoOption; /** 版本检查配置 */ versionCheck?: VersionCheckOptions; /** 自定义配置选项 */ [key: string]: any; } export interface BuildContext { /** 构建工具类型 */ bundler: 'vite' | 'webpack' | 'rollup'; /** 构建模式 */ mode: 'development' | 'production'; /** 项目根目录 */ root: string; /** 输出目录 */ outDir: string; } export interface PluginHooks { /** 构建开始前的钩子 */ buildStart?: (context: BuildContext) => void | Promise<void>; /** 构建结束后的钩子 */ buildEnd?: (context: BuildContext) => void | Promise<void>; /** 文件变更钩子 */ fileChanged?: (filePath: string, context: BuildContext) => void | Promise<void>; } export interface BasePluginInterface extends PluginHooks { /** 插件名称 */ name: string; /** 插件选项 */ options: PluginOptions; /** 应用插件到构建工具 */ apply(config?: any): any; } interface BaseVersionInfoOption { /** 项目名称 */ projectName?: string; /** 自定义元数据 */ meta?: { [key: string]: any; }; } interface GitHashVersionOption extends BaseVersionInfoOption { versionType: 'git-hash'; } interface PackageVersionOption extends BaseVersionInfoOption { versionType: 'package'; } interface CustomVersionOption extends BaseVersionInfoOption { versionType: 'custom'; /** * 自定义版本号 - 支持同步和异步函数 */ customVersion: string | number | (() => string | number) | (() => Promise<string | number>); } export type VersionInfoOption = GitHashVersionOption | PackageVersionOption | CustomVersionOption; export interface VersionCheckOptions { /** 是否启用版本检查 */ enabled?: boolean; /** 检查间隔(毫秒),默认30秒 */ checkInterval?: number; /** 是否启用通知 */ enableNotify?: boolean; /** 版本文件路径 */ versionFile?: string; /** 是否启用控制台日志 */ enableConsoleLog?: boolean; /** 最大重试次数 */ maxRetries?: number; /** 重试延迟时间(毫秒) */ retryDelay?: number; /** 注入位置 */ injectPosition?: 'head' | 'body'; /** 是否压缩脚本 */ minify?: boolean; /** 版本变更回调 */ onVersionChange?: (oldVersion: string, newVersion: string) => void; /** 错误回调 */ onError?: (error: Error) => void; } export interface ExtendedPluginOptions extends PluginOptions { /** 版本检查配置 */ versionCheck?: VersionCheckOptions; } export {}; //# sourceMappingURL=index.d.ts.map