前端工程化 词条目录
前端Wiki/词条/esbuild

esbuild

定义用 Go 编写的超高速 JS/TS 打包与编译器,速度比传统 Node 工具快一两个数量级

esbuild 的快来自三件事:Go 原生多线程并行、无中间 AST 序列化(解析/转换/生成全程在内存中一条龙)、几乎不做昂贵的类型检查(只转译 TS 类型语法,不校验类型正确性)。同样的项目,webpack 要几十秒,esbuild 常常零点几秒就完成。对中大项目而言,依赖预构建从十几秒压到毫秒级,正是 Vite 开发服务器秒开的底气所在。

它现在是 Vite 的开发期依赖预构建引擎,也被 Storybook、Turbopack 生态等借力。局限是插件生态远不如 webpack/Rollup 丰富,一些深度定制(特殊静态资源处理、复杂代码拆分策略)能力有限,因此多是作为底层引擎被组合使用,而非直接替代全套工具链。如果项目高度依赖自定义插件链,目前仍建议以 Vite 或 Rollup 为主,把 esbuild 当作加速器而非替代品。

JavaScript
// 用 esbuild 直接打包一个 TS 文件
const esbuild = require('esbuild');

esbuild.build({
  entryPoints: ['src/index.tsx'],  // 入口(支持 jsx/tsx)
  bundle: true,                    // 打包依赖
  minify: true,                    // 压缩
  sourcemap: true,                 // 生成 sourcemap
  splitting: true,                 // 代码拆分
  format: 'esm',
  outdir: 'dist',
  define: { 'process.env.NODE_ENV': '"production"' }
}).then(() => console.log('done'));

// 命令行也行:esbuild src/app.ts --bundle --minify --outfile=dist/app.js
⚠ 常见误区
🔗 相关词条Vite 与 esbuild为什么需要构建工具
← 返回来源章节Vite 与 esbuild