Bun 1.0 JavaScript 运行时发布,附带 Windows“实验”版

boyanx6个月前技术教程17

作者 | 核子可乐、丁晓昀

Bun 团队已经为其 JavaScript/TypeScript 运行时公布了 1.0 稳定版,正式版在速度、集成度和兼容性等方面均做出了强有力的承诺。


项目缔造者 Jarred Sumner 在视频演示中解释道,“Bun 是一款完整的工具包,用于构建、测试和调试各类 JavaScript 与 TypeScript 应用场景,小到袖珍脚本、大到全栈服务器端渲染应用皆可支持。”Bun 在设计上还与 Node.js 相兼容。虽然目前还存在一些限制,导致不少开发者对其“替代品”的宣传定位仍旧存疑,但相当一部分命令和 API 已经确实有效。而且与 Node.js 不同,Bun 使用苹果 JavaScriptCore 引擎并由 Zig 构建而成。


Bun 能够运行 TypeScript 与 JavaScript,而又无需进行类型检查——这明显违背了开发者选择 TypeScript 的基本初衷。不过,开发人员也可使用 TypeScript 编译器 tsc 来配合 Bun。


Bun 的特色之一,在于它能支持 ES(EcmaScript)模块(浏览器直接支持)与 CommonJS(较早的模块系统)。开发团队认为,CommonJS 在 JavaScript 生态系统中已经根深蒂固,不可贸然放弃对它的支持。Sumner 表示,“无论再过多久,总会有一部分软件包尚未使用 ES 模块。”



项目缔造者 Jarred Sumner 在视频中展示 Bun


Bun 开发团队在速度方面做出了大胆承诺。他们发布的帖子提到,bun 软件包的安装速度是 npm(Node 包管理器)的 29 倍;在 JavaScript 测试中速度为 Jest 的 13 倍;打包速度则是 esbuild 的 1.75 倍。


Bun 在此番发布中还推出“高度实验性的”Windows 版本。在此之前,Bun 还仅能支持 Mac、Linux 和 Windows Linux 子系统(WSL)。开发团队介绍称,所谓“高度实验性”,是指这套 Windows 版“仅支持 JavaScript 运行时;其他包管理器、测试运行器和捆绑器均被禁用,待后续稳定时方可开放。”


Bun 目前能够支持的框架为 Next.js、Astor 和 Nest.js。其他可与 Bun 配合使用的框架则包括 Nuxt、SvelteKit 和 Vite。


Bun 还加入了 Deno,希望构建起比现有 Node.js 更出色的运行时。基于 Node 的开发环境往往涉及不同工具集合,也因此变得难以管理。Bun 与 Deno 简化了这一点,与 Deno 相比,Bun 更倾向于兼容 Node.js 和 CommonJS,这对不少开发者都具有一定的吸引力。一位开发者指出,“我们有一支全栈 TypeScript 团队,管理着约 50 个内部库和约 50 万行 TypeScript 代码。上个月,我们尝试用 Deno 加 Bun 作为替代运行时。简单来讲:只要复杂度不是特别高的代码库,Bun 几乎都能直接兼容,而 Deno 则几乎全都无法兼容。”


但对于有些人来说,虽然 Bun 已经迎来 1.0 版本,但这款相对较新的工具还略显青涩、难堪生产工作负载的大任。而且不少人发现虽然 Bun 表现不错,但实际性能其实达不到当初承诺的水平。不过总体而言,Bun 的首个正式版本还是获得了不错的评价。


相关链接:


https://devclass.com/2023/09/11/bun-1-0-javascript-runtime-released-complete-with-experimental-windows-version/


https://www.youtube.com/watch?v=BsnCpESUEqM


https://www.infoq.cn/article/Uj6bY5VyC6IDheuilHOC


本文转载来源:

https://www.infoq.cn/article/OM4ZAlXZV1cIhGLrpBVa

相关文章

javascript中const/let/var的用法区别及使用场景

给大家建议使用的优先级:const > let > var 首先const声明常量的好处,一是阅读代码的人立刻会意识到不应该修改这个值,二是防止了无意间修改变量值所导致的错误,另外其实js...

Bun.js 太强了,每秒处理 129 万个请求!

近期,Bun 发布了 v1.1.25 版本,并高调宣布在最新的性能测试中,每秒可以处理 129 万个 HTTP 请求,我们一起来看看这个版本究竟做了哪些改进吧。node:cluster 支持Bun 现...

Node.js 原生支持 TypeScript?开发者需要了解的一切

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!随着 Node.js v23.6.0 的发...

基于ES6,使用React、Webpack、Babel构建模块化JavaScript应用

【编者按】本文为《Building modular javascript applications in ES6 with React, Webpack and Babel》的简译内容,讲述了作者基于...

Scala.js:将Scala编译为JavaScript

Scala.js是一款将Scala代码编译为JavaScript代码的编译器,该编译器支持全部Scala语言特性。借助于Scala.js,开发者能够使用Scala开发从前端到后端的Web应用,而且Sc...

ES6基础——环境构建、任务自动化、服务器搭建

1. 为什么学习 ES6 需要构建环境1. 因为 ES6 一些语法, 在浏览器中是不能直接运行的 。2. 环境构建内容:1. 基础架构 1. 项目需要放置那些目录 。 2. 那些目录放置那...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。