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

相关推荐
计算机毕设指导62 分钟前
基于 SpringBoot 的作业管理系统【附源码】
java·vue.js·spring boot·后端·mysql·spring·intellij-idea
paopaokaka_luck20 分钟前
[371]基于springboot的高校实习管理系统
java·spring boot·后端
Json_181790144801 小时前
电商拍立淘按图搜索API接口系列,文档说明参考
前端·数据库
风尚云网1 小时前
风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计
前端·css·学习·html·html5·风尚云网
木子02041 小时前
前端VUE项目启动方式
前端·javascript·vue.js
GISer_Jing1 小时前
React核心功能详解(一)
前端·react.js·前端框架
捂月1 小时前
Spring Boot 深度解析:快速构建高效、现代化的 Web 应用程序
前端·spring boot·后端
深度混淆2 小时前
实用功能,觊觎(Edge)浏览器的内置截(长)图功能
前端·edge
Smartdaili China2 小时前
如何在 Microsoft Edge 中设置代理: 快速而简单的方法
前端·爬虫·安全·microsoft·edge·社交·动态住宅代理
秦老师Q2 小时前
「Chromeg谷歌浏览器/Edge浏览器」篡改猴Tempermongkey插件的安装与使用
前端·chrome·edge