Bun:一套工具搞定 JavaScript 开发

📅 2026/7/8 15:25:50
Bun:一套工具搞定 JavaScript 开发
文章目录Bun一套工具搞定 JavaScript 开发Bun一套工具搞定 JavaScript 开发oven-sh 推出的 Bun目前已经有 93k 的 StarBun 是一个面向 JavaScript 和 TypeScript 的全能工具包以单个bun可执行文件分发。核心是 Bun 运行时可作为 Node.js 的即插即用替代品。它用 Rust 编写底层使用 JavaScriptCore 引擎启动速度和内存占用都比 Node.js 有明显优势。bun run index.tsx # 直接运行 TS 和 JSXbun命令行工具同时实现了测试运行器、脚本运行器和兼容 Node.js 的包管理器。开发时不再需要 node_modules 里的上千个工具一个bun就够了。bun test # 运行测试 bun run start # 运行 package.json 中的 start 脚本 bun install pkg # 安装包 bunx cowsay Hello, world! # 直接执行 npm 包安装方式Bun 支持 Linuxx64 和 arm64、macOSx64 和 Apple Silicon以及 Windowsx64 和 arm64。# 安装脚本推荐curl-fsSLhttps://bun.com/install|bash# Windowspowershell-cirm bun.sh/install.ps1 | iex# npmnpminstall-gbun# Homebrewbrew tap oven-sh/bun brewinstallbun# Dockerdockerpull oven/bun升级到最新版本直接运行bun upgrade。功能一包管理器Bun 内置了完整的包管理器bun install的速度远超 npm 和 yarn。支持 workspaces、monorepo、私有仓库、各种 registry包括 Azure Artifacts 和 JFrog Artifactory还能直接安装 Git 依赖和 tarball 依赖。项目从 npm 迁移到 bun 基本不需要改代码。功能二打包工具Bun.build()提供了从源码到生产包的完整构建能力。支持 CSS、HTML、静态站点、字节码缓存、代码压缩还能生成单文件可执行文件。内置的 HMR热模块替换支持开发体验很流畅。功能三测试运行器Bun 的测试运行器兼容 Jest 的 API支持快照测试、mock、spy、覆盖率报告、DOM 测试配合 happy-dom还可以在 watch 模式下自动重跑。迁移成本低把jest的调用改成bun test就行。功能四内置 APIBun 提供了丰富的内置 API不用额外装第三方依赖HTTP 服务器Bun.serve()几行代码起一个 HTTP 服务支持 TLS、WebSocket、SSESQLitebun:sqlite内置数据库引擎PostgreSQLBun.sql()直接连接 PG 数据库RedisBun.redis()操作 RedisS3 客户端Bun.s3()对象存储操作文件操作Bun.file()、Bun.write()读写文件加密哈希Bun.hash()、Bun.CryptoHasherFFIbun:ffi调用 C 语言库Cron 定时任务Bun.cron()定时执行代码WebSocket服务端和客户端都支持YAML/TOML/JSON5/Markdown内置解析器整体来看Bun 把所有日常开发需要的工具打包到了一个二进制文件里。不用再装 Node.js、npx、ts-node、jest、esbuild 等一系列工具一个bun覆盖全部场景。生态系统Bun 生态在快速扩张支持主流的框架和工具前端框架Next.js、Nuxt、SvelteKit、Astro、Remix、SolidStart、Qwik、TanStack StartORM 和数据库Prisma、Drizzle、Gel、MongooseHTTP 框架Hono、Elysia、Express其他Sentry、PM2、Discord.js部署方面支持 Vercel、Railway、Render、AWS Lambda、Google Cloud Run、DigitalOcean 等平台也可以直接用 Docker 容器化部署。Bun 的目标不是替代 JavaScript 生态而是把碎片化的工具链整合起来。对于新项目直接上手 Bun 可以显著减少配置成本对于现有 Node.js 项目逐步替换包管理器和运行时的迁移成本也很低。替代 JavaScript 生态而是把碎片化的工具链整合起来。对于新项目直接上手 Bun 可以显著减少配置成本对于现有 Node.js 项目逐步替换包管理器和运行时的迁移成本也很低。