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?
如果犹豫要不要试一下,那不如先来看看下面这些点能不能吸引你:
- 速度:Bun 旨在提供高性能,无论是启动时间、执行速度还是安装依赖包的速度。进程的启动速度比Nodejs快4倍。
- 兼容性 Nodejs:Bun 致力于与现有的 JavaScript 生态系统兼容,包括 Node.js 的软件包。
- All in one:Bun 可以让你省下很多工具,因为内置了,比如npx,webpack,babel,jest等等
- 原生的 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 毫秒的时间。
我只是抛砖引玉,更多详细的使用就等着大家自己去尝试吧。
项目信息
- 项目名称:Bun
- GitHub 链接:github.com/oven-sh/bun
- Star 数:68K+