import { Chalk } from "chalk"; import { Compiler, Configuration, SwcLoaderOptions } from "@rspack/core"; import { RequestHandler } from "express"; import { Configuration as Configuration$1 } from "@rspack/dev-server"; //#region src/config/plugins/mock-server/defineMock.d.ts type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'CONNECT' | 'TRACE'; type API = string; type MockConfig = Record<`${Method} ${API}`, string | number | null | undefined | boolean | Record | RequestHandler>; declare function defineMock(config: MockConfig): MockConfig; //#endregion //#region src/utils/defineConfig.d.ts type ProxyConfigArray = NonNullable; type Configuration$2 = { webpack?: (config: Configuration) => Configuration | undefined; devServer?: (config: Configuration$1) => Configuration$1 | undefined; /** * webpack alias 配置,会与内置 alias 合并 * * 会自动读取 tsconfig 里 baseUrl + paths 的配置 * * @default * { '@': './src' } */ alias?: Record; /** * webpack externals 配置,会与内置 externals 合并 */ externals?: Record; /** * terser pure_funcs,esbuild pure 配置,传 [] 可以不清空 console.log * @default ['console.log'] */ pure_funcs?: string[]; /** * 是否压缩代码 * @default true */ minify?: boolean; /** 自定义全局参数 */ define?: Record; /** * context 填写的顺序很重要,前面的会优先匹配。可以重复定义 /api 来覆盖默认的配置 * * proxy 会自动删除请求头 referer,避免某些后端校验失败的问题 * @see https://webpack.js.org/configuration/dev-server/#devserverproxy * @default /api -> /qsxxwapdev/api * @example { '/api': 'http://localhost:3000' } * @example [{ context: ['/api'], target: 'http://localhost:3000' }] */ proxy?: ProxyConfigArray | Record; extraPostCSSPlugins?: any[]; /** * 开启 mock 功能,会自动加载 mock 文件夹下的文件 * * 默认情况下自动判断根目录是否存在 mock 文件夹,如果存在则开启 mock 功能。 * 如果设置 false,会关闭 mock 功能 */ mock?: boolean; /** * 开发模式启动后用来展示启动后的提示信息,或者自定义的逻辑 */ startup?: (params: { /** 控制台输出内容 */logger: ReturnType; /** 字体颜色相关工具 */ chalk: Chalk; /** webpack compiler 自定义的时候会用到 */ compiler: Compiler; }) => void; /** * 是否开启装饰器语法支持 只支持 legacy 版本 * @see https://babeljs.io/docs/en/babel-plugin-proposal-decorators * @default false */ decorators?: boolean; /** * 与 babel-plugin-import 类似,但是内部是 rspack 重构,libraryDirectory 默认值是 lib * * @see https://rspack.rs/zh/guide/features/builtin-swc-loader#rspackexperimentsimport * @default [{libraryName: 'lodash',libraryDirectory: '',camelToDashComponentName: false}] */ import?: NonNullable['import']; /** * 该选项可以开启 Rspack 构建过程中对快照及中间产物的缓存,可以使用它们来提升构建的速度。\ * 这会增加磁盘空间的使用,但能显著提升构建性能,特别是在大型项目中。建议在开发环境中开启,在生产环境中根据需要选择是否开启。\ * 项目会自动清理7天未使用的缓存文件,确保磁盘空间不会被过度占用。 * @default false */ cache?: boolean; }; declare function defineConfig(config: Configuration$2): Configuration$2; //#endregion export { defineConfig, defineMock };