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