用途:在打包 JavaScript/TypeScript 应用时使用该技能,借助 Bun 内置打包器完成构建,支持多种目标平台与现代化构建特性。
主要能力:支持面向不同目标的打包,如 Bun 运行时(默认)、浏览器(--target=browser)和 Node.js(--target=node);支持压缩输出(--minify);自动进行 tree-shaking,移除未使用代码;支持代码分割(splitting);支持 ESM、CJS、IIFE 输出格式;支持多入口配置、自定义命名规则、构建时替换环境变量(define)、将依赖标记为 external、生成 source map(external/inline/none),以及通过 BunPlugin 编写自定义插件。
使用方式:命令行可用 bun build ./src/index.ts --outdir ./dist,并按需附加 --target、--minify 等选项。也可使用程序化 API:从 "bun" 导入 build,传入 entrypoints、outdir、target、minify、sourcemap、format、splitting、define、external、naming、plugins 等配置。文中给出库构建(分别输出 ESM 与 CJS)、Web 应用构建、多输出构建、结合文件监听自动重建等示例。
适用场景:打包库、Web 应用或服务端代码,需按目标平台输出不同产物、控制依赖是否内联、做构建期变量替换或调试映射时适用。
限制与注意:避免为 Node 目标打包全部依赖而不配置 external;应处理构建错误,检查 result.success 并在失败时退出;开发构建不应始终压缩,可依据 NODE_ENV 条件压缩;不要过度分割代码,Bun 目标一般不需要 splitting,浏览器目标更适用;文中提示的命名、publicPath 等需按实际结构调整。