68K star!24年替换Node.js的最佳选择

Node.js已经有了超过14年的历史,虽然它一直有着不错的表现,但是关联的JavaScript 工具链正变得缓慢而复杂。我们今天要介绍的开源项目是一个快速的全能工具包,用于运行、构建、测试和调试 JavaScript 和 TypeScript,它就是:Bun

Bun是什么

Bun 的核心是一个快速的 JavaScript 运行时,旨在取代 Node.js。但它并不仅仅是一个运行时,它也是一个包管理器(类似 Yarn、 NPM、 PNPM),一个构建工具(类似 Webpack、 ESBuild、 Parcel) ,一个测试运行器,一个全能的工具包。它是用 Zig 语言编写的,并在底层由 JavaScriptCore 提供支持,大大减少了启动时间和内存使用。

从发布就一直热度高涨,是了2022年最火的前端项目,2023年的评选中也是第二名。

Bun 的目标很简单,就是要消除JavaScript工具链的缓慢和复杂性,但同时保留JavaScript本身的优点。Bun希望让开发者继续使用喜欢的库和框架,并且无需放弃已经熟悉的规范和约定。Bun一直追求极致的性能,在各个方面都要比Nodejs快不少。

以下是项目github 的 star 历史数据,一直保持着超高的增长速度。

为什么用 Bun?

如果犹豫要不要试一下,那不如先来看看下面这些点能不能吸引你:

  1. 速度:Bun 旨在提供高性能,无论是启动时间、执行速度还是安装依赖包的速度。进程的启动速度比Nodejs快4倍。
  2. 兼容性 Nodejs:Bun 致力于与现有的 JavaScript 生态系统兼容,包括 Node.js 的软件包。
  3. All in one:Bun 可以让你省下很多工具,因为内置了,比如npx,webpack,babel,jest等等
  4. 原生的 Web API:Bun 提供了许多浏览器中的 Web API,这使得编写服务器端代码与编写客户端代码更为相似。

使用Bun

Bun 提供了非常多的安装方式,对于Linux和MacOS用户,可以使用 curl、npm、Homebrew,docker等方式安装:

bash 复制代码
# with install script (recommended)
curl -fsSL <https://bun.sh/install> | bash

# with npm
npm install -g bun

# with Homebrew
brew tap oven-sh/bun
brew install bun

# with Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun

Windows的用户要求是win10 version 1809以上(不保证稳定性),可以通过Scoop来安装:

bash 复制代码
# WARNING: No stability is guaranteed on the experimental Windows builds
scoop bucket add versions
scoop install bun-canary

安装完成后,执行 bun --version ,看到输出版本号就是安装成功了。

接下来我们可以跑一个helloworld体验一下,可以试用 bun init命令

修改一下 index.ts 的内容

javascript 复制代码
const server = Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Bun!");
  },
});

console.log(`Listening on <http://localhost>:${server.port} ...`);

启动服务 bun index.ts ,就可以看到起的服务了

用起来上手不难,和Nodejs的使用接近。即使不把 Bun 用作运行时,Bun 内置的软件包管理器也能加快你的开发工作流程。Bun的安装速度比 npm、yarn 和 pnpm 快好几个数量级,还可以用 bun run 来替换 npm run,每次运行命令都能节省 150 毫秒的时间。

我只是抛砖引玉,更多详细的使用就等着大家自己去尝试吧。

项目信息

相关推荐
Wiktok1 天前
pureadmin的动态路由和静态路由
前端·vue3·pureadmin
devii661 天前
html.
前端
掘金安东尼1 天前
为什么浏览器要限制 JavaScript 定时器?
前端·javascript·github
学前端搞口饭吃1 天前
react context如何使用
前端·javascript·react.js
GDAL1 天前
为什么Cesium不使用vue或者react,而是 保留 Knockout
前端·vue.js·react.js
IT_陈寒1 天前
《Java 21新特性实战:5个必学的性能优化技巧让你的应用快30%》
前端·人工智能·后端
小谭鸡米花1 天前
uni小程序中使用Echarts图表
前端·小程序·echarts
芜青1 天前
【Vue2手录11】Vue脚手架(@vue_cli)详解(环境搭建+项目开发示例)
前端·javascript·vue.js
a别念m1 天前
前端架构-CSR、SSR 和 SSG
前端·架构·前端框架
BillKu1 天前
Vue3 + Element-Plus 抽屉关闭按钮居中
前端·javascript·vue.js