1 |
|
2 | import { ExternalsElement, Condition } from 'webpack';
|
3 | import IWebpackChainConfig from 'webpack-chain';
|
4 | import { IChangeWebpackConfigFunc } from './index';
|
5 |
|
6 | export type IPlugin<T = any> = string | [string, T];
|
7 |
|
8 | export interface IRoute {
|
9 | path?: string;
|
10 | component?: string;
|
11 | routes?: IRoute[];
|
12 | Routes?: string[];
|
13 | redirect?: string;
|
14 | [key: string]: any;
|
15 | }
|
16 |
|
17 | export interface IExportStaticOpts {
|
18 | htmlSuffix?: boolean;
|
19 | dynamicRoot?: boolean;
|
20 | }
|
21 |
|
22 |
|
23 | export interface IAFWebpackConfig {
|
24 | alias?: object;
|
25 | autoprefixer?: object;
|
26 | babel?: object;
|
27 | browserslist?: string[];
|
28 | chainConfig?: any;
|
29 | copy?: any[];
|
30 | cssLoaderOptions?: any;
|
31 | cssModulesExcludes?: string[];
|
32 | cssModulesWithAffix?: boolean;
|
33 | cssnano?: object;
|
34 | cssPublicPath?: string;
|
35 | define?: object;
|
36 | devServer?: object;
|
37 | devtool?: string | false;
|
38 | disableCSSModules?: boolean;
|
39 | disableCSSSourceMap?: boolean;
|
40 | disableDynamicImport?: boolean;
|
41 | entry?: any;
|
42 | env?: object;
|
43 | es5ImcompatibleVersions?: boolean;
|
44 | externals?: ExternalsElement;
|
45 | extraBabelIncludes?: Condition[];
|
46 | extraBabelPlugins?: any[];
|
47 | extraBabelPresets?: any[];
|
48 | extraPostCSSPlugins?: any[];
|
49 | hash?: boolean;
|
50 | ignoreMomentLocale?: boolean;
|
51 | lessLoaderOptions?: any;
|
52 | manifest?: any;
|
53 | minimizer?: 'uglifyjs' | 'terserjs';
|
54 | outputPath?: string;
|
55 | proxy?: object | [object, Function];
|
56 | publicPath?: string;
|
57 | sass?: object;
|
58 | terserJSOptions?: object;
|
59 | theme?: string | object;
|
60 | tsConfigFile?: string;
|
61 | typescript?: object;
|
62 | uglifyJSOptions?: object;
|
63 | urlLoaderExcludes?: Condition[];
|
64 | }
|
65 |
|
66 | interface IConfig extends IAFWebpackConfig {
|
67 |
|
68 |
|
69 | chainWebpack?: IChangeWebpackConfigFunc<
|
70 | IWebpackChainConfig,
|
71 | IAFWebpackConfig
|
72 | >;
|
73 | context?: object;
|
74 | disableRedirectHoist?: boolean;
|
75 | exportStatic?: boolean | IExportStaticOpts;
|
76 | outputPath?: string;
|
77 | plugins?: IPlugin[];
|
78 | routes?: IRoute[] | null;
|
79 | runtimePublicPath?: boolean;
|
80 | singular?: boolean;
|
81 | treeShaking?: boolean;
|
82 |
|
83 |
|
84 | base?: string;
|
85 | history?: 'browser' | 'hash' | 'memory';
|
86 | mountElementId?: string;
|
87 | targets?: {
|
88 | [key: string]: number;
|
89 | };
|
90 | }
|
91 |
|
92 | export default IConfig;
|