import { WebpackPluginInstance, Compiler } from 'webpack'; import { c as PluginConfig, b as AnalysisResult } from './config.types-FhZrFXHQ.cjs'; import { D as DepsConflictResolver } from './resolver-BG2AVCds.cjs'; /** * Webpack 插件主类 * * 使用 compiler.hooks.normalModuleFactory 实现模块请求拦截 * 相比 resolve 插件,这种方式更加直接和高效: * 1. 在模块工厂创建阶段就能拦截请求,时机更早 * 2. 可以直接修改 request,不需要复杂的 resolve 链处理 * 3. 更好的 TypeScript 类型支持 * 4. 代码更简洁,易于维护 */ declare class DepsConflictResolverWebpackPlugin implements WebpackPluginInstance { private config; private resolver; private analysisResult; private initPromise; private initialized; constructor(config: PluginConfig); /** * 初始化解析器 */ private initialize; /** * 处理模块解析请求 * 直接修改 resolveData.request 来实现重定向 * * 注意:这里直接使用别名包名作为新的请求,而不是转换为文件系统路径 * 因为 webpack 5 的 ESM 模式需要模块请求而不是目录路径 */ private handleResolve; apply(compiler: Compiler): void; /** * 获取解析器实例 */ getResolver(): DepsConflictResolver | null; /** * 获取分析结果 */ getAnalysisResult(): AnalysisResult | null; /** * 获取别名配置 * 返回 webpack 格式的别名映射 */ getAliasConfig(): Record; /** * 检查是否已初始化 */ isInitialized(): boolean; } /** * 创建 Webpack 插件 */ declare function createWebpackPlugin(config: PluginConfig): DepsConflictResolverWebpackPlugin; export { DepsConflictResolverWebpackPlugin, createWebpackPlugin, DepsConflictResolverWebpackPlugin as default };