
JavaScript 是世界上更流行、应用最广泛的编程语言之一。它为 *** 应用程序、移动应用程序、桌面软件甚至嵌入式设备提供支持。尽管它被广泛使用,但也并非没有挑战。与所有技术一样, 也面临着性能、兼容性、安全性和复杂性等问题。
为了解决这些问题,多年来开发了多个 JavaScript 运行时。其中, 和 尤为突出,它们都为解决 JavaScript 的局限性提供了解决方案。然而,它们在解决了许多问题的同时,也带来了新的问题,如需要不必要的软件包和较慢的运行时性能。
现在,JavaScript 运行时 Bun 已经出现了一段时间,但该团队最近才。Bun 的目标是成为 Node.js 更直接、更高效的替代品。
本文将探讨 Bun 及其独特功能,以及如何将其集成到 JavaScript 项目中。

Bun.sh 网站主页
Bun 是一个 JavaScript 运行时,主要使用 Zig 编程语言编写。它旨在解决 Node.js 的局限性,同时提供更精简、更高效的开发体验。
然而,Bun 并不像多年来出现的许多 JavaScript 运行时一样,只是另一种 JavaScript 运行时: 它是一个一体化工具包,旨在彻底改变开发人员使用 JavaScript 和 TypeScript 的方式。Bun 扩展了为苹果 Safari 提供动力的 ,可以实现更快的启动时间和更好的内存使用率。
与 Node.js 不同,Bun 的运行不依赖 或外部依赖项。相反,它有一个内置的标准库,为各种协议和模块提供功能,包括环境变量、、WebSocket、等。
它还提供对 的开箱即用支持。由于 Bun 在内部转译了每个 JavaScript 或 TypeScript 源文件,因此你可以直接编译和运行 TypeScript 文件,而无需额外的配置或转译。
Bun 随附功能强大的命令行界面 (CLI) 工具,可让你使用以下直接命令 run, format, lint, test͏, 和 bundle 代码:
bun run — 使用 Bun 运行 JavaScript 或 TypeScript 文件。bun test — 使用 Bun 内置的测试框架运行单元测试。bun fmt — 使用 Bun 内置的代码格式化工具格式化代码。bun lint — 使用 Bun 内置的代码筛选器筛选代码。bun bundle — 使用 Bun 内置的代码捆绑器捆绑代码。Bun 的另一个突出特点是它的热重载功能,该功能可在保留应用程序状态的同时即时刷新代码更改。这是对 Node.js 的重大改进,在 Node.js 中,类似的功能需要 等外部软件包或 --watch 实验标志。相比之下,Bun 使用 --hotflag 简化了这一过程。
除了技术上的优势,Bun 还拥有一个不断壮大的用户社区,他们为 Bun 的开发和改进做出了积极贡献。这个充满活力的社区确保了 Bun 的及时更新和响应,并为学习和故障排除提供了充足的资源。
除了热重载、对 TypeScript 的原生支持和更快的启动时间外,Bun 还有几个核心特性为其作为 JavaScript 运行时的受欢迎程度和性能做出了贡献:它的捆绑程序、测试运行程序和包管理器。下面让我们详细讨论这些特性。
捆绑程序将 JavaScript 代码及其依赖关系整合到一个文件中͏,从而优化浏览器或 Node.js 应用程序的加载效率。Node.js 缺乏原生捆绑程序͏,开发人员在处理 JavaScript 代码时需要依赖 等第三方捆绑程序。
相比之下,Bun 提供的内置捆绑程序只需最少的配置,并支持不同的模块格式。它还具有内置优化功能,支持更快的捆绑。相比之下,Bun 的捆绑程序优于其他捆绑程序,运行速度。
你可以通过 bun bundle ͏<source>--out-dir<directory> 命令捆绑你的项目。它会在指定的输出目录中生成输出文件:

将项目与 Bun 捆绑
测试͏ 是软件开发的重要组成部分,可确保代码的功能性,并在生产前发现潜在问题。Bun 也在其工具包中加入了测试运行程序。
此外,Node.js 开发人员还采用了 等外部测试框架,这些框架功能强大、灵活,但会给项目带来额外的依赖性和配置开销。
另一方面,Bun 集成了自己的测试运行器,强调速度和兼容性。这种集成 *** 具有以下优势:
Bun 中的测试运行程序与各种测试框架完全兼容。运行测试就像执行 bun test 命令一样简单。
此外,由于 Bun 本身支持 TypeScript 和 *** X,因此无需额外的配置或插件。您可以专注于编写高质量的测试,而不是设置测试环境。
Bun 的 Node.js 兼容包管理器比 npm、yarn 和 pnpm 快得多。它能加快速度、减少磁盘使用量并更大限度地减少内存占用。

Bun 团队对 Bun、ppm、npm 和 Yarn 的基准测试
通过使用 symli͏nks,Bun 将每个项目的软件包链接到一个集中的位置,从而省去了为后续项目重新下载模块的麻烦。
要开始在电脑上使用 Bun,首先要安装它。安装 ,包括使用 cURL 命令、npm 或 Homebrew。不过,需要注意的是,Bun 最适合在 macOS 或 Linux 系统上使用。
要通过 cURL 命令安装 Bun,请在终端执行以下命令:
curl -fsSL https://bun.sh/install | bash
安装成功后,请在终端运行 bun --version 进行验证。这将确认 Bun 已准备就绪,可以使用。
现在,你可以探索 Bun 的功能了。你可以使用 bun run 命令来运行 Node.js 项目。此外,要运行名为 index.ts 的 TypeScript 文件,可使用 bun run index.ts –Bun 会转换你的 TypeScript 文件,无需额外的软件包。
Bun 的实用性远不止这些基本功能。它能与 和 等 JavaScript 框架无缝集成。要深入了解 Bun 的功能,请查看。
使用 Bun 迁移或运行 Node.js 项目非常简单,只需执行几个 Bun CLI 命令即可。请按照以下步骤使用 Bun 运行 Node.js 项目:
首先,安装 Bun。安装好 Bun 后,导航到包含 Node.js 项目文件(包括 package.json 文件)的目录。在项目的工作目录中,运行此命令:
bun install
通过上述命令,Bun 可以读取 Node.js 项目总监͏y 中的 package.json 文件,查看͏ lock.json 文件(如果存在),并使用内置软件包管理器安装列出的依赖项。

使用 Bun 安装依赖项
安装好依赖项后,就可以用 Bun 执行项目了。使用 bun run 命令,然后输入项目的入口点文件:
bun run
例如,如果项目的入口点是一个名为 index.js 的文件,请输入 bun run index.͏js 。
Bun 会执行指定文件中的 JavaScript 或 TypeScript co͏de。如果项目的 package.json 文件中定义了启动脚本,也可以使用 bun start 运行项目。

在 Visual Studio Code 中执行 Bun 项目
过渡到新的运行环境可能会带来挑战。不过,Bun 对 Node.js 模块的强大支持、对全局变量的识别,以及对 Node.js 模块解析算法的遵循,都能简化从 Node.js 迁移到 ͏Bun 的过程。
假设您正在开发一个 Node.js 项目,该项目目前使用 包管理环境变量。在这种情况下,你可以放心地从项目中移除 dotenv 包及其初始化代码。这是因为 Bun 内置了自动读取 .env 文件的功能,因此不需要 dotenv 包。
请记住,Bun 仍处于开发阶段,因此在迁移过程中更好谨慎行事。
作为 JavaScript 运行时,Bun 因多种原因而变得越来越重要。它的设计注重性能和简洁性,旨在简化开发流程并提高整体效率。它的模块化架构让你可以只选择特定项目所需的组件,减少不必要的开销。
与 Node.js 不同,Bun 占用空间更小,启动时间更短。对于需要快速响应时间和有效利用资源的应用程序来说,这一优势至关重要。Bun 的简单性和模块化 *** 有助于提供更直接、更可定制的开发体验。
宝塔面板其中一个最为便捷的功能之一,无需SFTP或者FTP即可对服务器的文件内容进行上传、下载、编辑及删除等管理操作。 文件管理,用于管理该服务器上的文件内容。 文件的基础操作 文件的基础操作有哪些了,主要有这些方面:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。...
宝塔面板设置主要涉及的是宝塔控制后台自身的参数,包括诸如面板的开关、自动更新及SSL、面板端口设置等。虽然这部分不涉及服务器自身的管理,但对宝塔面板的设置也有其重要。 特别是面板端口、安全入口及面板密码等涉及安全的参数设置。 启动和关闭面板 如果你长时间无需使用到宝塔面板,可以考虑...
对于初学者和那些刚刚进入WordPress开发的人来说,PHP是您可以开始的最佳起点之一。这是一种超级简单直接的语言,使其成为之一,因此相当容易上手,它构成了在线开发的支柱。另外,如果你想在WordPress后端工作,你肯定需要学习它。 但是,如果您不想在昂贵的大学课程上花费数月或数年时间怎么...
Laravel多年来一直是PHP应用程序开发的摇滚明星,这是有充分理由的。庞大的生态系统、活跃的社区、强大的就业市场、成功的初创公司——它拥有一切让采用新技术变得值得的东西。 如果你想学习Laravel,你不需要更进一步。通过浏览本指南,您可以找到最适合您的Laravel教程,与您的知识水平和...
美国劳工统计局估计在美有超过软件开发人员。根据2021年的数据,其中,这是世界上使用最广泛的五种编程语言之一。 自然,学习Java并成为Java开发人员对于任何对软件开发感兴趣的人来说都是明智的职业选择。 在本综合指南中,您将学习成为Java开发人员所需的一切知识。我们将分解您需要的技能、工...
有时似乎有太多的商业首字母缩写词要记住。随着快速变化的技术进步和云计算的出现,新的类别将不断涌现。XaaS 就是这样一个最新的补充。 该领域的大多数读者都知道、和。但是你听说过XaaS吗? XaaS(一切皆服务)涵盖了一切:现在一切都可以成为服务。 这听起来好像很复杂的样子,但别担心——我...