Bunjs 开始支持 Windows 它真的快吗?
一、bun 正式支持 windows
近日 bunjs 的关于 windows 支持测试覆盖率已经到了 98% 意味着已经能够在 windows 中使用 bun 了,至此也完成了跨平台能力。至此 JavaScript 生态又多了一个好用的工具。
二、Bun 速度特性观察
- Bun 内置的包管理工具,在测试 Vite+ React 项目时, bun install 的速度:
- 是 yarn install 的 18 倍,
- 是 npm install 的 30 倍。
- bunx 与 npx 快 11 倍。
- bun run 是 npm run 的 11 倍
三、安装 Bun v1.1.0
# curl 命令
curl https://bun.sh/install | bash
# npm
npm install -g bun
bun --version # 1.1.0 安装成功
# 更新
bun upgrade
四、Bun install 真的快吗?
官网基于 vite + react 进行测试,我们这里选择 remix 框架进行测试。
bun 在实际中真的吗? 我们用自己的电脑做一些主观的测试.(注意是主观测试,仅供参考)。
测试机器配置:
- 普通笔记 windows 笔记本配置
- 其次网络问题
- 存在代理
- 需要访问 github 等, 造成速度比较慢。
基于 vite react 测试各个包 install 命令
包管理工具 | 测试次数 | 消费时间 |
---|---|---|
npm | 3 | (14s/162)/(6s/162)(7s/217) |
bunx | 4 | (66.67s/209)(8s/209)(9.07s/209)(8.75s/209) |
pnpm | 3 | (8.5s/209)(6.9s/733)(7s/733) |
yarn | 3 | (17.05s)(13.29s)(12.15s) |
针对 vite react 项目 pnpm 在普通机器上具有缓存的优化,花费时间最短
五、基于 create-remix 测试各个包的 install 命令
我们以创建 remix 为例,对比 npx/yarn/pnpm/bun 的快速初始化一个项目速度。本测试主观性比较强,因为之前一直在用 pnpm(pnpm 存在缓存优势):
npx create-remix
yarn create remix
pnpx dlx create-remix
bunx create-remix
包管理工具 | 测试次数 | 消费时间 |
---|---|---|
npm | 5 | (34s/790)/(34s/790)(34s/790)(23s/790)(25s/790) |
bunx | 4 | (88.36s/209)(90.91s/733)(30.34s/732)(35.27s/732) |
pnpm | 3 | (21s/733)(14.5s/733)(14.5s/733) |
yarn | 3 | (48.65s)(25.20s)(27.47s) |
从以上表可以得出结论:create-remix
这个创建 remix 项目其实下载包的数量是有差异的,yarn 没有直接先下载包的数据量。
在简单的创建项目的场景下,普通配置电脑 pnpm 在有缓存之后就不再从网络上下载,时间在 14.5 左右。 bunx 在创建项目和安装依赖时,并没有优势。
六、Bun 阶段: resolving/installing
- 第一次安装 resolving 阶段时,可能会卡住:
bun install
bun install v1.1.0 (5903a614)
🔍 Resolving [1/12]
Bun 在 resolving 阶段花费时间比较长。经过 resolve 之后就是安装阶段,安装阶段是需要从 npm 库中下载。installing 阶段各个包管理工具处理是不同的,npm/bun/yarn 都还是要下载,但是 pnpm 直接读取缓存。如果删除 node_modules 由于有 bun.lock 文件存在 Bun 会直接进入 install 阶段,不再需要 resolving,会加速下载过程。
七、小结
在 windows 系统重中 bun 已经发布,经过测试 bun dev/bun run的运行速度确实挺快的。但是 bun install 相对于其他的包管理工具并普通 PC 机上主观上没有体现出优势,尤其是第一次安装项目依赖的时候。期待 Bun 对 windows 的进一步针对 PC 的优化。
转载自:https://juejin.cn/post/7352879991301013542