Bun 打包基础 #

概述 #

Bun 内置了高性能打包器,可以快速打包 JavaScript、TypeScript 和 JSX 代码,无需 Webpack 或 Rollup。

基本用法 #

命令行打包 #

bash
# 基本打包
bun build ./src/index.ts --outdir ./dist

# 指定输出文件
bun build ./src/index.ts --outfile ./dist/bundle.js

# 压缩代码
bun build ./src/index.ts --outdir ./dist --minify

# 生成 Source Map
bun build ./src/index.ts --outdir ./dist --sourcemap

输出格式 #

bash
# ES 模块(默认)
bun build ./src/index.ts --outdir ./dist --format esm

# CommonJS
bun build ./src/index.ts --outdir ./dist --format cjs

# IIFE(立即执行函数)
bun build ./src/index.ts --outdir ./dist --format iife

目标环境 #

bash
# 浏览器(默认)
bun build ./src/index.ts --outdir ./dist --target browser

# Node.js
bun build ./src/index.ts --outdir ./dist --target node

# Bun
bun build ./src/index.ts --outdir ./dist --target bun

编程式 API #

基本打包 #

typescript
import { build } from "bun";

const result = await build({
  entrypoints: ["./src/index.ts"],
  outdir: "./dist",
  minify: true,
  sourcemap: "external",
});

if (!result.success) {
  console.error("Build failed:", result.logs);
}

完整配置 #

typescript
import { build } from "bun";

const result = await build({
  entrypoints: ["./src/index.ts"],
  outdir: "./dist",
  target: "browser",
  format: "esm",
  minify: {
    whitespace: true,
    identifiers: true,
    syntax: true,
  },
  sourcemap: "external",
  splitting: true,
  external: ["react", "react-dom"],
  define: {
    "process.env.NODE_ENV": JSON.stringify("production"),
  },
  plugins: [],
});

console.log(result.outputs);

打包为可执行文件 #

bash
# 打包为可执行文件
bun build ./src/cli.ts --compile --outfile myapp

# 跨平台编译
bun build ./src/cli.ts --compile --target=bun-linux-x64 --outfile myapp-linux
bun build ./src/cli.ts --compile --target=bun-darwin-arm64 --outfile myapp-macos
bun build ./src/cli.ts --compile --target=bun-windows-x64 --outfile myapp.exe

配置文件 #

build.config.ts #

typescript
export default {
  entrypoints: ["./src/index.ts"],
  outdir: "./dist",
  target: "browser",
  format: "esm",
  minify: true,
  sourcemap: "external",
  splitting: true,
  external: ["react", "react-dom"],
  define: {
    NODE_ENV: "production",
  },
};
bash
bun build --config build.config.ts

下一步 #

现在你已经了解了 Bun 打包基础,接下来学习 插件系统 了解如何扩展打包功能。

最后更新:2026-03-29