Bun:一个替代 Node.js 的 JavaScript 全家桶工具
文章目录Bun一个替代 Node.js 的 JavaScript 全家桶工具Bun一个替代 Node.js 的 JavaScript 全家桶工具Bun 是一个面向 JavaScript 和 TypeScript 应用的全能工具集在 GitHub 上拿到了 93,129 个 StarBun 的核心是一个 JavaScript 运行时定位为 Node.js 的直接替代品。底层用 Zig 编写引擎选用 JavaScriptCoreSafari 的 JS 引擎启动速度和内存占用相比 Node.js 有明显改善。一条命令就能跑 TypeScript 或 JSX不需要额外配置编译步骤bun run index.tsx除了运行时Bun 还自带包管理器、测试运行器和脚本运行器。日常开发中需要的 npm、npx、jest 等工具在 Bun 里被整合成了一个可执行文件。bun test # 跑测试 bun run start # 执行 package.json 中的 start 脚本 bun install pkg # 安装依赖 bunx cowsay Hello, world! # 运行一个 npm 包Bun 的包管理器兼容 Node.js 生态已有的 Node.js 项目可以直接切换过去基本不需要改动代码。安装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升级到最新版本bun upgrade也可以切到每日构建版本canary获取最新的修复和功能bun upgrade --canary核心能力Bun 的工具链覆盖面比较全主要包含以下部分运行时支持 TS、JSX、ESM内置 Node.js 兼容层大部分 Node.js 代码可以直接运行包管理器bun install、bun add、bun remove全局缓存和锁文件机制齐全测试运行器bun test兼容 Jest 风格的 API支持 mock、快照、代码覆盖率打包器Bun.build提供了原生的打包能力支持代码分割、tree shaking、字节码缓存HTTP 服务器Bun.serve内置了 HTTP 服务器支持 WebSocket、路由、SSE数据库客户端内置 SQLite、PostgreSQL、Redis 的原生支持文件系统流式读写、tar 归档、glob 匹配等常用操作都有对应的 APIShell内置了类似 bash 的 Shell 能力可以在 JS 中直接执行系统命令Bun 的 API 设计大量借鉴了 Web 标准fetch、Response、ReadableStream 等对前端开发者来说上手成本较低。与 Node.js 的关系Bun 的定位是兼容并替代 Node.js而非另起炉灶。它实现了 Node.js 的核心模块fs、path、http 等大部分 npm 包可以不加修改地运行。对于启动速度敏感的场景CLI 工具、serverless 函数、CI 流水线Bun 的优势会比较明显。目前 Bun 并非所有 Node.js API 都已完整实现一些依赖原生模块C addon的包可能还存在兼容问题。项目在持续迭代中每次版本发布都会补充新的 Node.js 兼容性。项目状态Bun 由 Jarred Sumner 创建目前由 Oven 团队维护。项目更新频率很高基本每周都有新版本发布。93,129 个 Star 的数据说明社区关注度不低已有不少公司在生产环境中试用。项目文档在 bun.com 上内容比较完整涵盖了安装、运行时、包管理、API 参考等各个方面。ar 的数据说明社区关注度不低已有不少公司在生产环境中试用。项目文档在 bun.com 上内容比较完整涵盖了安装、运行时、包管理、API 参考等各个方面。