注册
web

帮你省时间,看看 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

curl -fsSL https://bun.sh/install | bash # 检查:which bun


  • 使用 npm 安装

npm install -g bun # 检查:which bun


  • 其他平台的安装方法


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运行测试
xbun x 的别名,类似于 npx
repl进入交互式环境
create使用模板创建项目
install安装依赖
add添加依赖
remove移除依赖
update更新依赖
link全局链接一个 npm 包
unlink移除全局链接的 npm 包
pm更多的包管理命令
build打包 TypeScript/JavaScript 文件到单个文件
update获取最新的 bun 版本

三、作为 JS/TS 运行时


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

如果直接运行 index.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)初始化一个项目


bun init # 与 npm init -y 类似

4.2)使用脚手架


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

五、作为构建工具



  • 初始化一个简单的项目

cd your_dir
bun init # 默认
bun add react react-dom # 添加依赖包
touch index.tsx


  • 添加 TSX 文件内容

import React from 'react'

const App = () => {
return <div>This is App</div>
}


  • 打包 bun build

bun build ./index.tsx --outfile=bundle.js


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



六、作为测试运行器


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


import { expect, test } from "bun:test";

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

运行时测试:


bun test

速度很快,输出结果:


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 socketsTCP 套接字通信
Globals全局变量和对象
Child processes创建子进程
Transpiler转译器
Hashing哈希函数和算法
Console控制台输出
FFI外部函数接口
HTMLRewriterHTML 重写和转换
Testing测试工具和框架
Utils实用工具函数
Node-APINode.js API 访问

八、展望



  • windows 支持

小结


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


作者:进二开物
来源:juejin.cn/post/7277399972916428835

0 个评论

要回复文章请先登录注册