import type { Plugin } from 'vite'; export interface CapabilitiesPluginOptions { /** 覆盖扫描目录(相对项目根)。不传按 DEFAULT_DIRS 依次扫描。 */ dir?: string; /** * 注入下游 Vite 主版本号,跳过自动探测。仅供单测覆盖 Vite < 8 / Vite 8+ * 两条 depOptimizer 分支用,**生产代码不应该传**。 */ _viteMajorOverride?: number | null; } /** * 检测当前下游 Vite 是不是 8+。Vite 8 在 `optimizeDeps.esbuildOptions` 非空时 * 会打 deprecation warn,且把 plugins 自动合到 rolldown.plugins 末尾;既然 * rolldown 路径已经独立挂了,Vite 8+ 上跳过 esbuild 路径避免污染输出。 * * package 用 CommonJS 模块(tsc emit),直接 require vite/package.json;读不到 * 时保守按 < 8 处理(多挂 esbuild 不影响低版本正确性)。 */ export declare function detectViteMajor(): number | null; /** * 把业务工程 `/*.json` 的 capability 配置打成 `virtual:capabilities` * 虚拟模块。 * * `@lark-apaas/client-capability` SDK(被 client-toolkit 内联使用)会 * `import map from 'virtual:capabilities'` 取这个 map。SDK 在 dev 预览 / 沙箱 * 加载流程中依赖这个模块存在,所以即使 capability 目录为空,也必须把模块 * 注册成解析成功(空 map),否则 Vite build / depOptimizer 直接 fail: * * ✘ [ERROR] Could not resolve "virtual:capabilities" * node_modules/@lark-apaas/client-capability/dist/index.js:285:35 * Error during dependency optimization * * 必须同时挂三条路径: * 1. Vite 主 pipeline `resolveId` / `load` * 2. Vite 8+ Rolldown depOptimizer `optimizeDeps.rolldownOptions.plugins` * 3. Vite < 8 默认 esbuild depOptimizer `optimizeDeps.esbuildOptions.plugins` * (Vite 8+ 跳过避免 deprecation warn,见 detectViteMajor 注释) * * V1 限制:dev 期更改 capability JSON 后,pre-bundle 产物的刷新取决于 * depOptimizer 缓存是否失效;新增 / 修改 capability 建议直接重启 dev server * 以确保拿到新值。 */ export declare function capabilitiesPlugin(options?: CapabilitiesPluginOptions): Plugin; export default capabilitiesPlugin; //# sourceMappingURL=capabilities-plugin.d.ts.map