import { Configuration as WebpackConfiguration } from 'webpack'; type ResolveType = Required['resolve']; type AliasType = Required['alias']; type FallbackType = Required['fallback']; type OptimizationType = Required['optimization']; type SplitChunks = Required['splitChunks']; type CacheGroups = Exclude["cacheGroups"]; type ExternalsType = Required['externals']; type ExternalsObjectType = Exclude>; type PluginType = Required['plugins']; type PluginInstanceType = PluginType extends Array ? Exclude : never; type ModuleType = Required['module']; type RuleType = Required['rules']; type RuleObjectType = RuleType extends Array ? Exclude : never; type WatchOptionsType = Required['watchOptions']; type IgnoreType = Required['ignored']; type PollType = Required['poll']; /** * 编译环境配置 */ export type CompilerConfiguration = { webpack?: { resolve?: { alias?: AliasType; fallback?: FallbackType; }; extraOakModules?: (string | RegExp)[]; splitChunks: { cacheGroups: CacheGroups; }; externals?: ExternalsObjectType; module: { rules: RuleObjectType[]; }; plugins?: PluginInstanceType[]; watchOptions?: { aggregateTimeout?: number; ignored?: IgnoreType; poll?: PollType; }; }; }; /** * 创建一个oak编译器配置 * @param raw 原始配置 * @returns 编译器配置 * 通过这个函数可以实现对配置文件的预处理,以及在项目中创建配置时提供类型参考 */ export declare function CreateCompilerConfig(raw: CompilerConfiguration): CompilerConfiguration; export {}; /** * 将compiler.js中的模块导出使用以下形式: * module.exports = CreateComilerConfig({}) * 可以在编写时获得类型提示 */