探索 Bun - 更快、更现代的 JavaScript 运行时

2025-06-07

探索 Bun - 更快、更现代的 JavaScript 运行时

Bun 是从头构建的全新 Javascript 运行时,旨在服务于现代 Javascript 生态系统。

但我们真的需要更多的 Javascript 工具吗?

嗯,Javascript 空间与 15 年前 NodeJS 首次发布时完全不同。

  • 每年都有新版本发布ECMAScript
  • 由于开发人员体验的增强,Typescript 正在成为常态。
  • 几乎每个开发框架中都使用 JSX。

这些迫使 Javascript 运行时变得lighterfaster

Deno - 侏罗纪时代的现代运行时

不久前,我们得到了 Deno。虽然它只是 No-De 的反转,也就是 De-No,但它的功能远不止于此。

其功能在其网站上列出:

Deno 功能

但是,Deno 本质上失败了,因为:

从用户的角度来看,Deno 实际上只具备一些“次要功能”。它拥有更简洁的代码库、采用了最新的最佳实践,并且安全性更高,但这些对用户来说实际上只是“功能”,本身并不是一个产品。

Bun背后的技术

Bun 是一个 JavaScript 运行时。但它究竟意味着什么呢?
它始于一个引擎——运行 JavaScript 代码的运行时组件。

我们都知道 V8,它是 Chrome 和 NodeJS 背后的 JS 引擎。
但 Bun 使用了不同的东西—— JavascriptCore

Javascript Core 是Performance🚀 focusedApple 为 Safari 浏览器构建的解决方案

JS 引擎无法独立工作。因此,它结合外部 API、消息队列以及臭名昭著的事件循环,创建了一个 JavaScript 运行时。

Javscript 运行时内部工作原理

在 Bun 中,这是从头开始实现的,使用C 或 Rust 等通用Zig语言low-level来构建快速应用程序。

上述实现在启动和运行时提供了更好的性能和内存管理,再加上令人惊叹的速度,您就拥有了 NodeJS 真正的竞争对手。

包子模因

包子的特点

Bun 有很多出色的功能,值得购买。

1. 支持 NodeJS 包🎯

由于原生实现了数百个 Node 模块,Bun 就像是 NodeJS 的 Drop-In 替代品

Bun 还使用该package.json文件作为依赖项,因此 NodeJS 的学习曲线更短,而且bun install速度非常快👇

发髻速度

2. 内置 Typescript 支持,速度很快⚡

在 Bun 诞生之前,运行 TypeScript 既繁琐又缓慢。Bun 内置了在项目中运行 TypeScript 的支持,使其运行速度更快。

Typescript 包子

3. 支持 CommonJS 和 ESModules(MyFavorite) 🎉

还记得那些不得不将项目从旧require语法转换为import新语法的日子吗?有些库仍然无法完美地支持 Typescript 的 import 语法。

有了 Bun,这一切都消失了。你可以写其中之一,也可以同时写两者。

包子特色

4. 内置测试支持

您喜欢测试驱动开发吗?还是您才刚刚开始?没关系。因为您无需学习新的测试框架即可完成这项工作。

Bun 带有内置测试支持,因此比其他测试速度快得多。

面包测试基准

说得够多了,让我们看一些使用 Bun 的例子 📌

安装 Bun

安装 Bun 非常简单,如下所示:

curl -fsSL https://bun.sh/install | bash
Enter fullscreen mode Exit fullscreen mode

设置服务器

准备好开发自己的服务了吗?创建一个新文件:server.ts并添加以下代码:

Bun HTTP 服务器

启动服务器

现在开始监听请求,运行以下命令(无需.js单独转换的中间步骤):

bun index.tsx
Enter fullscreen mode Exit fullscreen mode

使用 Bun 来响应组件

Bun 开箱即用地支持 .jsx 和 .tsx 文件。Bun 的内部转译器会在执行前将 JSX 语法转换为原生 JavaScript。

带面包的 JSX
它还可以与上述 React 组件一起使用。

凭借上述功能以及更多功能,Bun 已准备好成为 Javascript 运行时市场的新常态。

想在项目中使用 Bun 吗?请访问其官方网站,获取入门指南和安装指南:Bun.js

文章来源:https://dev.to/thevinitgupta/discover-bun-a-faster-modern-javascript-runtime-5fob
PREV
✨ 您应该访问的 6 个网站学习瑰宝!
NEXT
GraphQL 中的婴儿步骤👶让我向您解释如何开始学习 GraphQL,同时理解每一点代码。