Bun@1.0.2 更新

简介

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 发展更好

相关推荐
小白CAD17 分钟前
前端vue打印后端对象为[object,object]
前端·javascript·vue.js
凉风听雪20 分钟前
node使用express在服务器上创建接口,携带参数访问时返回参数
node.js·api·express
续亮~3 小时前
6、Redis系统-数据结构-05-整数
java·前端·数据结构·redis·算法
顶顶年华正版软件官方5 小时前
剪辑抽帧技巧有哪些 剪辑抽帧怎么做视频 剪辑抽帧补帧怎么操作 剪辑抽帧有什么用 视频剪辑哪个软件好用在哪里学
前端·音视频·视频·会声会影·视频剪辑软件·视频剪辑教程·剪辑抽帧技巧
baozongwi5 小时前
ctfshow web入门 nodejs web334--web337
web安全·node.js
托尼沙滩裤6 小时前
【js面试题】js的数据结构
前端·javascript·数据结构
不熬夜的臭宝6 小时前
每天10个vue面试题(一)
前端·vue.js·面试
不如喫茶去6 小时前
VUE自定义新增、复制、删除dom元素
前端·javascript·vue.js
长而不宰6 小时前
vue3+electron项目搭建,遇到的坑
前端·vue.js·electron
阿垚啊7 小时前
vue事件参数
前端·javascript·vue.js