index.js 1.13 KB
/**
 * `@drama/config/vite` 公共面 —— `defineWebPreset(overrides)` 工厂。
 *
 * 产出 `@app/web` / `@app/studio` / `@drama/ui` 通用的 Vite config(Vue 插件、`@drama/*`
 * workspace 解析、build 产物约定、SPA base)。app 只传差异(入口、proxy、预渲染开关),
 * 经**深合并**覆盖默认(嵌套字段精确覆盖,同级默认保留)。
 *
 * 消费示例:
 *   // apps/web/vite.config.js
 *   import { defineWebPreset } from '@drama/config/vite'
 *   export default defineWebPreset({ root: '.', server: { proxy: { '/api': 'http://localhost:9007' } } })
 */

import { buildBaseConfig, deepMerge } from './base.js'

/**
 * Vite config 工厂:base 默认 + 深合并 overrides。
 * @param {Record<string, unknown>} [overrides] 用户差异(深合并进默认)。
 * @param {{ env?: Record<string, string | undefined>, command?: string }} [options]
 * @returns {Record<string, unknown>} 可被 Vite 直接消费的 config。
 */
export function defineWebPreset(overrides = {}, options = {}) {
  return deepMerge(buildBaseConfig(options), overrides)
}

export { VUE_PLUGIN_NAME } from './base.js'