极其快速的 JavaScript 和 TypeScript 打包/构建工具,用 Go 语言编写。设计目标是零配置、超高性能,构建速度比传统工具快 10-100 倍。

安装

npm install -g esbuild
# 或项目内
npm install --save-dev esbuild

基本使用

# 打包 JS
esbuild src/index.js --outfile=dist/bundle.js
 
# 打包 TypeScript
esbuild src/index.ts --outfile=dist/index.js
 
# Bundle + Minify
esbuild src/index.ts --bundle --minify --outfile=dist/bundle.js
 
# Watch 模式
esbuild src/index.ts --bundle --watch --outfile=dist/bundle.js

配置文件(JS 配置)

const esbuild = require('esbuild');
 
esbuild.build({
  entryPoints: ['src/index.ts'],
  outfile: 'dist/bundle.js',
  bundle: true,
  minify: true,
  sourcemap: true,
  target: ['es2020'],
}).catch(() => process.exit(1));

工具边界

  • esbuild 是极速编译器,不是完整的工程化工具
  • 不内置 HMR、Dev Server(需额外配置或用 vite)
  • vite 底层用 esbuild 做预构建,rollup 做生产打包
  • 适合:库打包、CI 快速构建、作为其他工具的底层引擎

踩坑点

  • 不支持所有 TypeScript 特性(如 const enum 跨文件)
  • 插件 API 相对简单,复杂转换需要自写插件
  • CSS Modules 支持有限