简介
bun 是由 Jarred Sumner 用 Zig 开发的面向 JavaScript 和 TypeScript 的全能工具箱,拥有与 Node.js、npm、npx、Rollup、Jest 等工具同等的功能。
它能作为一个 JavaScript 运行时,内置打包、测试、包管理等功能,兼容 Node.js 生态,旨在替代 Node.js。
相比于 Node.js,bun 内置多种开发工具,有着更快的启动速度以及更小的内存占用,能直接运行 .ts 和 .tsx 文件,且整体打包为了单一可执行文件,大大简化了开发环境的设置。
快速上手
安装
eval "$(curl https://get.x-cmd.com)" # 安装 x-cmd
x env use bun # 使用 x-cmd 安装 bun
使用
-
运行 JavaScript 或 TypeScript 脚本:
bun run ./hello.js bun run ./hello-world.tsx echo "console.log('Hello')" | bun run - -
使用 package.json 中定义的命令,如 package.json 中定义了 clean 和 dev:
{ // package.json "scripts": { "clean": "rm -rf dist && echo 'Done.'", "dev": "bun server.ts" } }bun run dev bun run clean -
安装包和管理项目依赖,类似于 npm:
# 安装 cowsay 包到当前项目环境中 bun install cowsay # 安装 cowsay 包到全局环境中 bun install -g cowsay # 根据 bun.lockb 或 package.json 文件中的依赖列表下载和安装所有依赖 bun install # 删除依赖项 bun remove cowsay -
执行 npm 包二进制文件,类似于 npx:
# bunx 是 bun x 的别名,安装 bun 时会自动添加 bunx cowsay "Hello world"
功能特点
- 全能工具箱:整体打包为了单一可执行文件,涵盖了运行时、打包、测试、包管理等多种功能,兼容 Node.js 生态,能直接运行
.ts和.tsx文件。 - 高性能:基于 JavaScriptCore 并使用 Zig 语言构建,启动速度更快,内存占用更少。
- 安装包的速度更快:根据 Bun 官方的测试,bun 安装 JavaScript 包的速度比 npm 快 25 倍。
竞品和相关作品
- Node.js:用 C++、JavaScript 和 C 开发的 JavaScript 运行时,是主流的 JavaScript 运行时环境。
- deno:Ryan Dahl(Node.js 的原作者)用 Rust 开发的 JavaScript、TypeScript 和 WebAssembly 运行时,是 Node.js 的替代方案,能兼容 Node.js。
- npm/npx:主流的 JavaScript 包管理器,也是 Node.js 默认捆绑和使用的包管理器。npx 是用于执行 npm 包二进制文件的工具,现已集成至 npm 中。
- Rollup:JavaScript 模块捆绑器,用于将项目文件打包成可部署的格式,如库或应用程序。
- Jest:JavaScript 测试框架,能帮助用户快速编写和运行测试用例,简化测试流程。
进一步阅读
更多内容请查阅 : pkg/bun
转载请标明原文链接 :www.x-cmd.com/pkg/bun
关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法