Bun v1.0.31 发布,支持 Unix 套接字发送 HTTP 请求!

Bun 是一款非常快速的 JavaScript 运行时、捆绑器、转译器和包管理器的一体化工具。

Bun v1.0.31 修复了 54 个错误(解决了 113 个 👍 问题),引入了 bun --print<stdin> | bun run -bun add --trust,使用 Unix 套接字的 fetch(),修复了 macOS 二进制文件大小问题,在旧版 Linux 上修复 spawn() 中的高 CPU 使用率 bug,添加了 util.styleText,Node.js 兼容性改进,修复了 bun install bug 和 bunx bug。

安装 Bun

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

# npm
npm install -g bun

# brew
brew tap oven-sh/bun
brew install bun

# docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun

# 更新 Bun
bun upgrade

bun --print

您现在可以使用 bun --print 来评估提供的代码并使用 console.log 打印结果。它与 node --print 相同,不过 Bun 支持顶层 await、ESM、CommonJS、TypeScript 和 JSX。

Bun 也会等待未完成的 Promise,因此您不需要将 await 添加到您的代码中。

Bun 实施这一举措是因为许多 npm 包具有 postinstall 脚本调用 node --print,并且当您没有安装 Node.js 时,Bun 不希望 bun install 出现任何问题。

从标准输入运行代码

您现在可以使用 bun run - 将 stdin 管道传输到 Bun 中,这对于从文件或脚本运行代码非常有用。

与 Bun 的其他功能一样,此功能支持顶层 await、ESM、CommonJS、TypeScript 和 JSX。

bun add --trust package

Bun 已经改进了处理 package.json 中 trustedDependencies 的方式。默认情况下,Bun 不会运行未受信任的包的 postinstall 脚本。这是一个安全功能,可以防止恶意代码在您的计算机上运行。

当您第一次添加一个包时,Bun 会告诉您该包是否有一个未运行的 postinstall 脚本。

bash 复制代码
bun add v1.0.31
 Saved lockfile

 installed @biomejs/biome@1.6.1 with binaries:
  - biome

 1 package installed [55.00ms]

 Blocked 1 postinstall. Run `bun pm untrusted` for details.

bun pm untrusted

如果您想查看被阻止的脚本,请运行 bun pm untrusted。

bash 复制代码
bun pm untrusted v1.0.31

./node_modules/@biomejs/biome @1.6.1
 >> [postinstall]: node scripts/postinstall.js

These dependencies had their lifecycle scripts blocked during install.

If you trust them and wish to run their scripts, use `bun pm trust`.

bun pm trust

如果您信任软件包,您可以运行 bun pm trust package。如果您想信任每个软件包,您也可以运行 bun pm trust --all。

bash 复制代码
bun pm trust v1.0.31

./node_modules/@biomejs/biome @1.6.1
 ✓ [postinstall]: node scripts/postinstall.js

 1 script ran across 1 package [71.00ms]

最受欢迎的软件包已经默认受信任。您可以通过运行 bun pm default-trusted 来查看受信任软件包的列表。

如果您已经知道要信任一个依赖项,可以使用 bun add --trust package 添加它。这将把该软件包及其传递性依赖项添加到您的 trustedDependencies 列表中,因此您无需为该软件包运行 bun pm trust。

Unix 套接字的 fetch()

Bun 现在支持通过 Unix 套接字发送 HTTP 请求。

js 复制代码
const response = await fetch("http://localhost/info", {
  // a file path to a Unix socket
  unix: "/var/run/docker.sock",
});

const { ID } = await response.json();
console.log("Docker ID:", ID);

这意味着您可以向使用 Unix 套接字通信但讲述 HTTP 的服务发送 fetch() 请求,比如 Docker 守护程序。此功能适用于 fetchnode:http

通常,Unix 套接字的文件路径限制约为 108 个字符,但在 Linux 上,我们添加了一种解决方案以支持更长的路径。

Windows 支持即将到来

Bun 即将发布支持 Windows 的 Bun v1.1 版本。一旦 Windows 版 Bun 通过了 95% 的测试套件,Bun 将宣布发布日期。

往期推荐

全新 Astro 主题管理平台,Astro 开发者门户上线!

前端大神 Anthony Fu 新作:Shiki v1.0 重磅发布!

Astro 4.5 发布,全新 Dev Audit UI 提升开发体验!

Biome v1.6 发布,支持 Astro、Svelte 和 Vue 文件!

基于 Rust 的 JS 打包工具:Rolldown 正式开源!

初步体验 Tailwind CSS v4,解析 v4 路线图和变化!

Tailwind CSS v4 预览版:高性能 CSS 新引擎!

UI 和 UX 全面升级,Node.js 新官网预览版发布!

Node.js 特别吉祥物:「火箭龟」引领新篇章!

Bun v1.0.30 正式发布,即将提供 Windows 稳定版本!

相关推荐
qiyi.sky18 分钟前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~22 分钟前
分析JS Crash(进程崩溃)
java·前端·javascript
哪 吒24 分钟前
华为OD机试 - 几何平均值最大子数(Python/JS/C/C++ 2024 E卷 200分)
javascript·python·华为od
安冬的码畜日常31 分钟前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺
l1x1n01 小时前
No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史
前端·http·html
Q_w77421 小时前
一个真实可用的登录界面!
javascript·mysql·php·html5·网站登录
昨天;明天。今天。1 小时前
案例-任务清单
前端·javascript·css
一丝晨光2 小时前
C++、Ruby和JavaScript
java·开发语言·javascript·c++·python·c·ruby
Front思2 小时前
vue使用高德地图
javascript·vue.js·ecmascript
zqx_72 小时前
随记 前端框架React的初步认识
前端·react.js·前端框架