[email protected] 更新

简介

Bun v1.0.2 修复了许多错误并使其速度 bun --watch 更快。

感谢您报告问题。我们正在努力尽快修复它们。

Bun 是一个非常快速的 JavaScript 运行时、打包(bundler)、转译器(transpiler)和包管理器(package manager)------多合一。我们最近对 Bun 发布了很多更改。以下是最近几个版本的回顾。万一你错过了:

  • v1.0.0 Bun的第一个稳定版本!
  • v1.0.1 命名导入.json和.toml文件,bug修复到bun安装,node:path,缓冲区

安装

要安装 Bun:

curl

bash 复制代码
curl -fsSL https://bun.sh/install | bash

npm

bash 复制代码
npm install -g bun

brew

bash 复制代码
brew tap oven-sh/bun

brew install bun

docker

bash 复制代码
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun

内容

bunx @latest 总是获取最新版本

以前,如果以前未在 /tmp 文件夹中安装软件包(每 3 天或在重新启动时清除一次, bunx package@latest 在您的操作系统上挂起),则只会获取最新版本的软件包)。

现在, bunx package@latest 将始终获取最新版本的包。如果存在标记并且该 @ 标记不是数字,它将在 npm 注册表中获取查询匹配版本的包。

bun --watch 更快

bun --watch <./path-to-file.ts> 允许您监视文件,并在文件或其任何导入更改时重新运行该文件。开发环境很有用

以前, bun --watch 会在更改时将任务排队到事件循环以重新加载进程。这意味着任何阻塞或长时间运行的任务都会延迟重新加载。

现在,它会立即重新加载。

在此 gif 中,当前时间戳(以毫秒为单位)在重新启动时打印到控制台。

bun run --slient 不再打印错误消息

bash 复制代码
bun run --silent bash -c 'exit 1'

以前:

bash 复制代码
error: "bash" exited with code 1

以后:

bash 复制代码
# nothing!

Bun现在使用 V8的日期解析器

Bun 现在使用 V8 的 Date 解析器(Date parser)。这意味着日期解析在 Bun 中的行为与在 Chrome 和 Node.js 中的行为相同。

以前

javascript 复制代码
Date.parse("2020-09-21 15:19:06 +00:00"); // Invalid Date

以后

javascript 复制代码
Date.parse("2020-09-21 15:19:06 +00:00"); // 1600701546000

修复了许多错误,其中日期解析在 Bun 中失败,但在 Node.js 中正常

URL.canparse 已实现

URL 类现在有一个静态 canParse 方法,如果可以解析 URL,则返回该方法, false 否则返回 trueURL: canParse() static method - Web APIs | MDN (mozilla.org)

javascript 复制代码
URL.canParse("https://example.com"); // true
URL.canParse("https://example.com:8080"); // true
URL.canParse("apoksd!"); // false

URL.canParse 是 Web 平台中相对较新的新增功能。在撰写本文时,它还在Chrome或Firefox中可用。

urlsearchparams.size 已实现

URLSearchParams 类现在有一个属性,该 size 属性返回搜索参数中的键/值对数。

javascript 复制代码
const params = new URLSearchParams("a=1&b=2&c=3");
params.size; // 3

URLSearchParams.prototype.size 是 Web 平台中相对较新的新增功能。URLSearchParams: size property - Web APIs | MDN (mozilla.org)

修复 bun run

以前, bun run 将始终加载 tsconfig.json 文件。这意味着,当 tsconfig.json 配置错误,会导致 bun run 失败,这是完全没有必要的。此问题已修复。

修复 node:stream

当传递给函数时 encoding write ,不会调用 。 callback 此问题已修复

修复 fetch中传递data参数的错误

以前,无效 data:, URL 会在 中 fetch 抛出异常。这与 Node 不一致.js后者会在 URL 中留下不正确的数据。多亏了@davidmhewitt,此问题已得到修复。链接

Bugfix node:readline

修复了导致终端在 WSL 上挂起的错误 node:readline#5435 链接

Bugfix node:dns

已修复 node:dnsresolve 函数引发的崩溃问题 #5200 链接

os.availableParallelism() 已实现

模块 node:os 现在有一个属性,该 availableParallelism 属性返回进程可用的逻辑 CPU 数。

javascript 复制代码
os.availableParallelism(); // 8

您也可以使用 navigator.hardwareConcurrency .

Bugfix Bun.serve()

修复了在开始读取流之前将所有数据排队时可能发生的崩溃。发生此崩溃是因为代码缺少对 JavaScript 函数是否为可调用对象的检查。 #5321 链接

Bugfix 设置Cookie 传递参数错误

在某些情况下, node:http 中设置 set-cookie 标头设置可能不正确的bug, 已得到修复。

node:fs 支持并发

以前,只有少数 node:fs 函数是并发的。现在,他们都是。

可删除的setTimeout 和其他全局变量

大多数全局变量现在是可配置/可删除的,这修复了影响某些库和 ExecJS 的问题。

Bugfix Fastify

Fastify在初始化期间循环遍历require.cache。之前在require.cache中包含了尚未完成评估的ES Modules,这导致Fastify出现了部分故障。现已修复。

Bugfix CRLF终止文件中多行字符串 修复

#5318 链接

Bugfix Bun.file()

当文件的长度小于 的大小 Bun.file() 时,文件有时无法完成读取。已修复。

#5186 链接

Bugfix node:tty

已修复 WritableStream.prototype.getColorDepth有时引发异常的错误。

#5468 链接

Transpiler bugfix 将非ASCII正则表达式字面量转换为latin1编码

#5468 链接

内部变化

我们从LLVM 15和Clang 15升级到LLVM 16和Clang 16


最后,让我们一起期待,bun 发展更好

相关推荐
黄毛火烧雪下2 分钟前
React Context API 用于在组件树中共享全局状态
前端·javascript·react.js
Apifox13 分钟前
如何在 Apifox 中通过 CLI 运行包含云端数据库连接配置的测试场景
前端·后端·程序员
一张假钞15 分钟前
Firefox默认在新标签页打开收藏栏链接
前端·firefox
高达可以过山车不行16 分钟前
Firefox账号同步书签不一致(火狐浏览器书签同步不一致)
前端·firefox
m0_5937581017 分钟前
firefox 136.0.4版本离线安装MarkDown插件
前端·firefox
掘金一周20 分钟前
金石焕新程 >> 瓜分万元现金大奖征文活动即将回归 | 掘金一周 4.3
前端·人工智能·后端
三翼鸟数字化技术团队38 分钟前
Vue自定义指令最佳实践教程
前端·vue.js
Jasmin Tin Wei1 小时前
蓝桥杯 web 学海无涯(axios、ecahrts)版本二
前端·蓝桥杯
Misnearch1 小时前
node.js版本管理
node.js
圈圈编码1 小时前
Spring Task 定时任务
java·前端·spring