import { Plugin } from 'vite'; import { StaticPluginOption, CopyPluginOption } from '@vtj/cli'; interface DevToolsOptions { baseURL: string; copy: boolean; server: boolean; staticBase: string; staticDir: string; link: boolean | string; linkOptions: LinkOptions | null; vtjDir: string; vtjStaticDir: string; vtjRawDir: string; packagesDir: string; devMode: boolean; uploader: string; packageName: string; nodeModulesDir: string; presetPlugins: string[]; pluginNodeModulesDir?: string; extensionDir: string; materialDirs: string[]; hm?: string; enhance?: boolean | EnhanceOptions; devtools?: StaticPluginOption; copyDevtools?: boolean; pathRewrite?: string[]; } interface EnhanceOptions { entry?: string; name?: string; fileName?: string; external?: string[]; globals?: Record; outDir?: string; } interface LinkOptions { entry?: string; href?: string; serveOnly?: boolean; } declare function vtjModulesPlugin(dir?: string): Plugin; declare function parsePresetPlugins(options: DevToolsOptions): { copies: CopyPluginOption[]; staticDirs: StaticPluginOption[]; }; declare function createDevTools(options?: Partial): Plugin[]; /** * 修复 @uni-helper/axios-adapter 的两个问题: * 1. const upload 变量名与微信小程序引擎冲突(引擎将 prototype.upload 属性赋值误判为变量声明) * 2. let task = uni.xxxFile({...}) 的 TDZ 问题:若 fail 回调在赋值完成前同步触发,task 尚未初始化 * * 必须在 uni() 插件之前注册(enforce: 'pre')。 * * @example * // vite.config.ts * import { fixAxiosAdapterUploadConflict } from '@vtj/local'; * export default createUniappViteConfig({ * plugins: [ * fixAxiosAdapterUploadConflict(), // ← 在 uni() 之前 * uni(), * ] * }); */ declare function fixAxiosAdapterUploadConflict(): Plugin; /** * 修复 uni-app