全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 5 分钟 ✍️ juanwangdev

esbuild 转译配置

Vite 使用 esbuild 转译 TypeScript,可通过配置自定义转译行为。

esbuild 配置位置

JavaScript
export default defineConfig({
  esbuild: {
    // esbuild 配置选项
  }
})

装饰器支持

JavaScript
export default defineConfig({
  esbuild: {
    tsconfigRaw: {
      compilerOptions: {
        experimentalDecorators: true,
        useDefineForClassFields: false
      }
    }
  }
})

JSX 工厂函数

JavaScript
export default defineConfig({
  esbuild: {
    jsxFactory: 'h',
    jsxFragment: 'Fragment'
  }
})

目标环境

JavaScript
export default defineConfig({
  esbuild: {
    target: 'es2020'
  }
})

配置选项

选项说明
jsxFactoryJSX 元素创建函数
jsxFragmentJSX 片段函数
target编译目标环境
tsconfigRawTypeScript 配置覆盖
keepNames保持函数/类名

注意:esbuild 不支持 emitDecoratorMetadata。

装饰器与类字段

JavaScript
export default defineConfig({
  esbuild: {
    tsconfigRaw: {
      compilerOptions: {
        // 装饰器设置
        experimentalDecorators: true,
        // 类字段语义
        useDefineForClassFields: false
      }
    }
  }
})

JSX 自动导入

JavaScript
export default defineConfig({
  esbuild: {
    jsx: 'automatic',
    jsxImportSource: 'react'
  }
})

与 tsconfig.json 关系

esbuild 配置可覆盖 tsconfig.json 中的部分选项:

可覆盖不可覆盖
experimentalDecoratorsemitDecoratorMetadata
useDefineForClassFields类型检查相关
target模块解析相关

要点总结

  • esbuild 负责 TypeScript 转译
  • tsconfigRaw 覆盖 TypeScript 配置
  • 支持装饰器和 JSX 工厂函数配置
  • 不支持 emitDecoratorMetadata

📝 发现内容有误?点击此处直接编辑

← 上一篇 TypeScript 配置优化
下一篇 → 引用类型声明文件
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库