探索 Bun - 更快、更现代的 JavaScript 运行时
Bun 是从头构建的全新 Javascript 运行时,旨在服务于现代 Javascript 生态系统。
但我们真的需要更多的 Javascript 工具吗?
嗯,Javascript 空间与 15 年前 NodeJS 首次发布时完全不同。
- 每年都有新版本发布
ECMAScript
。 - 由于开发人员体验的增强,Typescript 正在成为常态。
- 几乎每个开发框架中都使用 JSX。
这些迫使 Javascript 运行时变得lighter
和faster
。
Deno - 侏罗纪时代的现代运行时
不久前,我们得到了 Deno。虽然它只是 No-De 的反转,也就是 De-No,但它的功能远不止于此。
其功能在其网站上列出:
但是,Deno 本质上失败了,因为:
从用户的角度来看,Deno 实际上只具备一些“次要功能”。它拥有更简洁的代码库、采用了最新的最佳实践,并且安全性更高,但这些对用户来说实际上只是“功能”,本身并不是一个产品。
Bun背后的技术
Bun 是一个 JavaScript 运行时。但它究竟意味着什么呢?
它始于一个引擎——运行 JavaScript 代码的运行时组件。
我们都知道 V8,它是 Chrome 和 NodeJS 背后的 JS 引擎。
但 Bun 使用了不同的东西—— JavascriptCore
。
Javascript Core 是Performance🚀 focused
Apple 为 Safari 浏览器构建的解决方案
JS 引擎无法独立工作。因此,它结合外部 API、消息队列以及臭名昭著的事件循环,创建了一个 JavaScript 运行时。
在 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 的支持,使其运行速度更快。
3. 支持 CommonJS 和 ESModules(MyFavorite) 🎉
还记得那些不得不将项目从旧require
语法转换为import
新语法的日子吗?有些库仍然无法完美地支持 Typescript 的 import 语法。
有了 Bun,这一切都消失了。你可以写其中之一,也可以同时写两者。
4. 内置测试支持
您喜欢测试驱动开发吗?还是您才刚刚开始?没关系。因为您无需学习新的测试框架即可完成这项工作。
Bun 带有内置测试支持,因此比其他测试速度快得多。
说得够多了,让我们看一些使用 Bun 的例子 📌
安装 Bun
安装 Bun 非常简单,如下所示:
curl -fsSL https://bun.sh/install | bash
设置服务器
准备好开发自己的服务了吗?创建一个新文件:server.ts
并添加以下代码:
启动服务器
现在开始监听请求,运行以下命令(无需.js
单独转换的中间步骤):
bun index.tsx
使用 Bun 来响应组件
Bun 开箱即用地支持 .jsx 和 .tsx 文件。Bun 的内部转译器会在执行前将 JSX 语法转换为原生 JavaScript。
凭借上述功能以及更多功能,Bun 已准备好成为 Javascript 运行时市场的新常态。
想在项目中使用 Bun 吗?请访问其官方网站,获取入门指南和安装指南:Bun.js
文章来源:https://dev.to/thevinitgupta/discover-bun-a-faster-modern-javascript-runtime-5fob