@esmx/vite

Vite 包提供了一组用于创建和配置 Vite 应用的 API,支持标准应用与 HTML 应用的构建和开发。它产出可被 @esmx/core 消费的原生 ESM 模块联邦产物,并通过 Vite 开发服务器在开发环境提供真正的模块级 HMR。

安装

使用包管理器将 @esmx/vite 安装为开发依赖:

npm
yarn
pnpm
bun
deno
npm install @esmx/vite -D

类型导出

BuildTarget

type BuildTarget = 'node' | 'client' | 'server'

构建目标环境类型,定义应用的构建目标环境:

  • node:构建运行于 Node.js 环境的代码
  • client:构建运行于浏览器环境的代码
  • server:构建运行于服务端环境的代码

ViteAppConfigContext

interface ViteAppConfigContext {
  esmx: Esmx
  buildTarget: BuildTarget
  config: InlineConfig
  options: ViteAppOptions
}

Vite 应用配置上下文接口,提供在配置钩子函数中可访问的上下文信息:

  • esmx:Esmx 框架实例
  • buildTarget:当前构建目标(client/server/node
  • config:Vite InlineConfig 对象——通过修改它来自定义构建(例如添加框架插件)
  • options:应用配置选项

ViteAppOptions

interface ViteAppOptions {
  minimize?: boolean
  config?: (context: ViteAppConfigContext) => void
}

Vite 应用配置选项接口:

  • minimize:是否启用代码压缩;true 启用,false 禁用,undefined 根据环境自动决定(生产启用、开发禁用)
  • config:配置钩子函数,在每个构建目标开始构建前调用,用于修改解析后的 Vite 配置。该钩子同样作用于开发服务器。

ViteHtmlAppOptions

interface ViteHtmlAppOptions extends ViteAppOptions {}

无框架 HTML 应用的选项。Vite 原生处理 TypeScript、CSS 和静态资源,因此与 Rspack 版本不同,这里不暴露额外的 loader 选项。

函数导出

createViteApp

function createViteApp(esmx: Esmx, options?: ViteAppOptions): Promise<App>

创建一个标准的 Vite 应用实例。

参数:

  • esmx — Esmx 框架实例
  • options — Vite 应用配置选项

返回值:

  • 返回一个 Promise,解析为创建的应用实例

createViteHtmlApp

function createViteHtmlApp(esmx: Esmx, options?: ViteHtmlAppOptions): Promise<App>

创建一个 HTML 类型的 Vite 应用实例(无 UI 框架)。

参数:

  • esmx — Esmx 框架实例
  • options — HTML 应用配置选项

返回值:

  • 返回一个 Promise,解析为创建的 HTML 应用实例
src/entry.node.ts
export default {
  async devApp(esmx) {
    return import('@esmx/vite').then((m) => m.createViteHtmlApp(esmx));
  }
};

模块导出

vite

重新导出 vite 包的全部内容,提供完整的 Vite 核心能力。