universal-build-plugin-version-check-test
Version:
一个支持多种前端构建工具的通用插件框架,包括 Vite、Webpack、Rollup 等,提供版本检查、构建优化等功能
92 lines • 2.89 kB
TypeScript
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