oak-cli/lib/createConfig.d.ts

56 lines
2.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Configuration as WebpackConfiguration } from 'webpack';
type ResolveType = Required<WebpackConfiguration>['resolve'];
type AliasType = Required<ResolveType>['alias'];
type FallbackType = Required<ResolveType>['fallback'];
type OptimizationType = Required<WebpackConfiguration>['optimization'];
type SplitChunks = Required<OptimizationType>['splitChunks'];
type CacheGroups = Exclude<SplitChunks, false>["cacheGroups"];
type ExternalsType = Required<WebpackConfiguration>['externals'];
type ExternalsObjectType = Exclude<ExternalsType, RegExp | string | Function | Array<any>>;
type PluginType = Required<WebpackConfiguration>['plugins'];
type PluginInstanceType = PluginType extends Array<infer T> ? Exclude<T, false | number | string | null | undefined> : never;
type ModuleType = Required<WebpackConfiguration>['module'];
type RuleType = Required<ModuleType>['rules'];
type RuleObjectType = RuleType extends Array<infer T> ? Exclude<T, false | number | string | null | undefined> : never;
type WatchOptionsType = Required<WebpackConfiguration>['watchOptions'];
type IgnoreType = Required<WatchOptionsType>['ignored'];
type PollType = Required<WatchOptionsType>['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({})
* 可以在编写时获得类型提示
*/