
Bun是一个现代化的JavaScript运行时,旨在简化并加速 JavaScript 和 TypeScript 应用的开发。与传统运行时不同,Bun 将多种工具整合为一个统一的套件,包括打包器、测试运行器以及兼容 Node.js 的包管理器。
Bun 的主要功能
1. 高性能
Bun 基于 JavaScriptCore 构建——这也是 Safari 浏览器的引擎,确保了应用快速启动和高效运行。
2. 全面的工具包
Bun 提供了一站式解决方案,包括用于打包代码的打包器、用于代码可靠性的测试运行器,以及兼容 Node.js 的包管理器,大幅简化开发流程。
3. Node.js 兼容性
Bun 旨在作为 Node.js 的替代品,支持 Node.js 的模块解析算法,并兼容内置模块(如 `fs` 和 `path`)。
4. 对 TypeScript 和 JSX 的一流支持
Bun 支持直接运行 `.ts` 和 `.tsx` 文件,同时遵循 `tsconfig.json` 的设置。此外,Bun 内部将 JSX 语法转换为 JavaScript,默认支持 React,也兼容自定义的 JSX 转换。
在Linux上安装Bun
Bun 的安装依赖于 `unzip`,因此您需要先使用发行版的包管理器安装它:
sudo apt install unzip # 对于 Debian、Ubuntu 和 Mint
sudo dnf install unzip # 对于 RHEL/CentOS/Fedora 和 Rocky/AlmaLinux
sudo emerge -a sys-apps/unzip # 对于 Gentoo Linux
sudo apk add unzip # 对于 Alpine Linux
sudo pacman -S unzip # 对于 Arch Linux
sudo zypper install unzip # 对于 OpenSUSE
sudo pkg install unzip # 对于 FreeBSD
接下来,使用 `curl` 命令下载并运行 Bun 的安装脚本。这将下载 Bun 的二进制文件,并将其添加到系统的 PATH,使 `bun` 命令可以全局使用:
curl -fsSL https://bun.sh/install | bash
在Linux上使用Bun入门
安装完成后,您可以快速创建一个新项目目录并开始构建应用:
mkdir my-bun-app
cd my-bun-app
然后,使用 Bun 初始化项目。它会提示您回答几个问题来设置项目,可以直接按回车接受默认值。Bun 会生成一些基础文件,如 `package.json`、`index.ts`、`.gitignore` 和 `tsconfig.json`:
bun init
创建 HTTP 服务器
打开 `index.ts` 文件,并添加以下代码以创建一个简单的 HTTP 服务器:
const server = Bun.serve({
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
});
console.log(`Listening on http://localhost:${server.port}`);
使用以下命令运行服务器:
bun run index.ts
此时,您会看到提示信息:`Listening on http://localhost:3000`。
在浏览器中访问 [http://localhost:3000](http://localhost:3000) 即可查看服务器的响应。
使用 Bun 管理包
可以通过以下命令向项目添加新包。Bun 会安装指定的包并更新 `package.json`,同时将依赖项管理在 `node_modules` 目录下,与其他包管理器类似,确保与现有的 Node.js 项目兼容:
bun add figlet
更新 `index.ts` 文件,在 `fetch` 处理程序中使用 `figlet` 包:
import figlet from "figlet";
const server = Bun.serve({
port: 3000,
fetch(request) {
const message = figlet.textSync("Welcome to Bun!", {
horizontalLayout: "default",
verticalLayout: "default",
});
return new Response(message, {
headers: { "Content-Type": "text/plain" },
});
},
});
console.log(`Listening on http://localhost:${server.port}`);
重新启动服务器并刷新页面,您将看到一个新的 ASCII 艺术横幅。
卸载 Bun
如果需要从系统中移除 Bun,可以使用以下命令:
rm -rf ~/.bun
Bun 是一个强大且高效的 JavaScript 运行时,将多个工具整合到一个平台中,大幅简化了开发过程。
其高性能、Node.js 兼容性,以及对 TypeScript 和 JSX 的一流支持,使 Bun 成为寻求现代化和简化开发体验的开发者的理想选择。











