import { ValueOf } from 'type-fest'; /** * Clam 项目类型 比如 React 类型项目的值为 react */ declare const ToolkitList: { readonly ReactApp: "@clamjs/toolkit-react-app"; readonly Monorepo: "@clamjs/toolkit-monorepo"; readonly NodejsLibrary: "@clamjs/toolkit-nodejs-library"; readonly ReactLibrary: "@clamjs/toolkit-react-library"; }; type Toolkit = ValueOf; interface Plugin { name: string; } /** * Dev 类配置项 * * Key 值请按照字典序排序 */ interface ClamConfigDev { /** * 是否自动打开浏览器 * * @default true */ openBrowser?: boolean; /** * 是否自动打开新的浏览器实例 * * Remote 模式在已有窗口打开;普通 dev 模式在新浏览器实例窗口打开(用于自动化代理) * * @default undefined */ openNewBrowser?: boolean; /** * 自定义 dev server 的端口 port * * @default 11000 */ port?: number; /** * 是否开启远程调试模式 * * 开启后,资源、HMR、MTop 走 Edith 代理,用于解决 MTop 接口跨域、移动设备真机远程调试等场景 * * @default false */ remote?: boolean; /** * 开启远程调试模式时,自定义 host * * @default 'edith.wapa.taobao.com' */ remoteHost?: string; /** * Mtop 请求命中 mock 逻辑时,将响应数据展示在日志中 * * @default true */ showMtopMockLog?: boolean; /** * 是否开启严格端口模式 * * 开启后,如果端口被占用,会直接报错;未开启时如果端口占用,会自动尝试下一个端口 * * @default false */ strictPort?: boolean; } interface ClamConfig { toolkit: Toolkit; template: string; dev: ClamConfigDev; plugins?: Plugin[]; } export { type ClamConfig, type Plugin, type Toolkit, ToolkitList };