import { Configuration, EntryObject, RspackOptions, RspackPluginInstance, RuleSetRule } from '@rspack/core'; import ICompileParam from '../../interface/ICompileParam'; /** * webpack配置器 * * 可用2种方式生成 webpack 配置 * * 1. 完全自定义:仅实现 create 函数返回完整的 webpack配置 * 2. 系统默认配置 +自定义常用属性:实现createPlugin、createEntry、createRules、hook */ interface IWebpackConfigurator { /** * 编译参数 */ param: ICompileParam; /** * 创建 webpack 完整配置 * * 如实现此函数,则其它函数无效 */ create?(): RspackOptions; /** * 创建 webpack 的 plugins */ createPlugins?(): RspackPluginInstance[]; /** * 创建 webpack 的 entry */ createEntry?(): string | string[] | EntryObject; /** * 创建 webpack 的 rules */ createRules?(): RuleSetRule[]; /** * 对已有的 webpack 配置做修改 * @param config */ hook?(config: Configuration): void; } export default IWebpackConfigurator;