帮你省时间,看看 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 你想尝试一下吗?

相关推荐
我要洋人死42 分钟前
导航栏及下拉菜单的实现
前端·css·css3
科技探秘人1 小时前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
monkey_meng1 小时前
【Rust中的迭代器】
开发语言·后端·rust
科技探秘人1 小时前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
余衫马1 小时前
Rust-Trait 特征编程
开发语言·后端·rust
JerryXZR1 小时前
前端开发中ES6的技术细节二
前端·javascript·es6
monkey_meng1 小时前
【Rust中多线程同步机制】
开发语言·redis·后端·rust
七星静香1 小时前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
q2498596931 小时前
前端预览word、excel、ppt
前端·word·excel
小华同学ai1 小时前
wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
前端·钉钉·飞书