帮你省时间,看看 bun v1.0 怎么用!

本文基于 Window Ubuntu WSL 环境测试,本文只选取重点,细节需查看文档

一、bun v1.0 做了什么?

all in JavaScript/TypeScript app。看起真的很了不起!

  • 作为JS/TS运行时
  • 作为包管理工具和包运行器
  • 作为构建工具
  • 作为测试运行器
  • 对外提供 API

资源

二、安装 bun v1.0

bun 目前不支持 window 环境,但是可以在 wsl 中使用。

2.1) 各种安装方法

  • curl
sh 复制代码
curl -fsSL https://bun.sh/install | bash # 检查:which bun
  • 使用 npm 安装
sh 复制代码
npm install -g bun # 检查:which bun
  • 其他平台的安装方法
sh 复制代码
brew tap oven-sh/bun # for macOS and Linux
brew install bun # brew
docker pull oven/bun # docker

2.2) bun 提供的命令

命令 描述
init 初始化一个 bun 项目
run 运行一个文件或者脚本
test 运行测试
x bun x 的别名,类似于 npx
repl 进入交互式环境
create 使用模板创建项目
install 安装依赖
add 添加依赖
remove 移除依赖
update 更新依赖
link 全局链接一个 npm 包
unlink 移除全局链接的 npm 包
pm 更多的包管理命令
build 打包 TypeScript/JavaScript 文件到单个文件
update 获取最新的 bun 版本

三、作为 JS/TS 运行时

ts 复制代码
bun index.js // 运行 js 文件
bun run index.ts // 运行 ts 文件
// 其他相关的 tsx/jsx/...

如果直接运行 index.tsx 没有任何依赖会报错:

tsx 复制代码
const Ad = <div>ad</div>

console.log(Ad)

// bun index.tsx 
// 错误:Cannot find module "react/jsx-dev-runtime" from "/xxx/index.tsx"

四、作为包管理工具和包运行器

4.1)初始化一个项目

sh 复制代码
bun init # 与 npm init -y 类似

4.2)使用脚手架

sh 复制代码
# 与 npx 类似, 以下可能常用的初始化项目的脚手架
bun create react-app
bun create remix
bun create next-app
bun create nuxt-app

五、作为构建工具

  • 初始化一个简单的项目
sh 复制代码
cd your_dir
bun init # 默认
bun add react react-dom # 添加依赖包
touch index.tsx
  • 添加 TSX 文件内容
tsx 复制代码
import React from 'react'

const App = () => {
  return <div>This is App</div>
}
  • 打包 bun build
sh 复制代码
bun build ./index.tsx --outfile=bundle.js

提示:bundle.js 中打包了 react 相关的包。

六、作为测试运行器

测试与 Jest 非常相似, 以下是官方示例:

js 复制代码
import { expect, test } from "bun:test";

test("2 + 2", () => {
  expect(2 + 2).toBe(4);
});

运行时测试:

sh 复制代码
bun test

速度很快,输出结果:

sh 复制代码
bun test v1.0.0 (822a00c4)

t.test.ts:
✓ 2 + 2 [1.03ms]

 1 pass
 0 fail
 1 expect() calls
Ran 1 tests across 1 files. [92.00ms]

七、对外提供 API

项目 描述
HTTP 服务 处理 HTTP 请求和响应
WebSocket 套接字 支持 WebSocket 连接
Workers 工具 在后台运行多线程任务
Binary data 处理二进制数据
Streams 流处理
File I/O 文件输入/输出操作
import.meta 访问模块元信息
SQLite 使用 SQLite 数据库
FileSystemRouter 文件系统路由器
TCP sockets TCP 套接字通信
Globals 全局变量和对象
Child processes 创建子进程
Transpiler 转译器
Hashing 哈希函数和算法
Console 控制台输出
FFI 外部函数接口
HTMLRewriter HTML 重写和转换
Testing 测试工具和框架
Utils 实用工具函数
Node-API Node.js API 访问

八、展望

  • windows 支持

小结

本文主要讲解了 bun v1.0 中所做的事情,包含极速的运行时、一体化的包管理工具、内置测试运行器、构建应用(打包)和对象提供各种类型的 API(兼容 Node API(非完全)),如此功能能完整的 bun 你想尝试一下吗?

相关推荐
CodeCraft Studio5 分钟前
PDF处理控件Aspose.PDF教程:在 C# 中更改 PDF 页面大小
前端·pdf·c#
我的golang之路果然有问题16 分钟前
ElasticSearch+Gin+Gorm简单示例
大数据·开发语言·后端·elasticsearch·搜索引擎·golang·gin
拉不动的猪24 分钟前
TS常规面试题1
前端·javascript·面试
再学一点就睡44 分钟前
实用为王!前端日常工具清单(调试 / 开发 / 协作工具全梳理)
前端·资讯·如何当个好爸爸
Jadon_z1 小时前
vue2 项目中 npm run dev 运行98% after emitting CopyPlugin 卡死
前端·npm
一心赚狗粮的宇叔2 小时前
web全栈开发学习-01html基础
前端·javascript·学习·html·web
IT瘾君2 小时前
JavaWeb:前端工程化-ElementPlus
前端·elementui·node.js·vue
爱编程的鱼2 小时前
如何在 HTML 中添加按钮
前端·javascript·html
鱼与宇2 小时前
WebSphere(WAS)
前端·chrome
站在风口的猪11082 小时前
《前端面试题:前端布局全面解析(圣杯布局、双飞翼布局等)》
前端·css·html·css3·html5