- ESBuild
- 速度极快(Go 语言编写,比 Webpack/Rollup 快 10-100 倍)。
- 零配置支持 TypeScript、JSX、ESM/CommonJS。
- 适合:轻量级打包、开发工具链、替代 tsc。
- 常用场景:
# 安装
npm install esbuild --save-dev
# 编译 TS → JS
npx esbuild src/app.ts --bundle --platform=node --outfile=dist/app.js
- tsup(基于 ESBuild)
- 零配置,专为 Node.js 和 TypeScript 优化。
- 支持 ESM/CommonJS 双格式输出。
- 常用场景
# 安装
npm install tsup --save-dev
# 打包 TS 项目(默认输出 ESM + CommonJS)
npx tsup src/index.ts
- Rollup
- Tree Shaking 优化(比 Webpack 更干净)。
- 适合 库开发(如 Lodash、Vue 等)。
- 常用场景
// rollup.config.js
import { nodeResolve } from '@rollup/plugin-node-resolve';
export default {
input: 'src/index.js',
output: { file: 'dist/bundle.js', format: 'cjs' },
plugins: [nodeResolve()],
};
- Webpack
- 功能最全(但配置复杂,适合前端项目)。「前端用vite,webpack有些过时了」
- 在 Node.js 场景下 稍显臃肿,但支持高级代码拆分。
- 常用场景
// webpack.config.js
module.exports = {
target: 'node', // 关键:打包为 Node.js 可用代码
entry: './src/server.js',
output: { filename: 'dist/server.js' },
};
- SWC(Rust 编写,类似 Babel)
- 比 Babel 快 20 倍,支持 TS/JSX。
- 适合 代码转译(不擅长打包)。
- 常用场景
# 编译 TS → JS
npx swc src --out-dir dist
- 不同场景下的推荐工具