530 期 - Node.js 22.0(Current)发布
本期看点:Node.js 的最新主要版本已经发布。需要注意的是,目前它是 Current 发布版本,但预计将在今年十月成为 Node.js 的 LTS 发布版本。作为一个偶数版本,Node 22 将会持续维护很长时间,很可能一直到 2027 年左右。
编辑:Yucohny、loveloki
🔥 本周热门
Node.js 22.0(Current)发布 —— Node.js 的最新主要版本已经发布。需要注意的是,目前它是 Current 发布版本,但预计将在今年十月成为 Node.js 的 LTS 发布版本。作为一个偶数版本,Node 22 将会持续维护很长时间,很可能一直到 2027 年左右。
那么 Node 22 有什么新特性呢?
-
V8 的 Maglev 编译器 现已默认启用,为更短寿命的程序带来了性能提升。
-
V8 已更新至版本 v12.4,最新版本引入了 iterator helpers、Set 方法 和 Array.fromAsync。
-
现在
node
支持运行 npm 脚本,例如node --run test
。 -
之前试验性的集成 WebSocket 客户端现已默认启用。
-
开始 支持 require(esm)。
Node 22 开始原生支持 CJS/ESM 互操作性 —— 一个关于 Node 在处理 CommonJS 和 ECMAScript 模块时进入新时代的概述。
Zachary Lee
JSR 不是“又一个包管理器” —— Node.js、npm 和 CommonJS 为 JavaScript 带来了一个包标准,而像 Yarn 或 pnpm 这样的工具则在这个过程中添加了自己的特色,Ryan 表示现在是进行转变的时候了。JSR 不是“一个新的 npm”,而是对包分发方式进行了重新设计,专为 ESM 时代而设计。 Ryan Dahl
你也许不需要 dotenv
:Node 现在本地支持 .env
文件加载 —— 这并不是一个全新的功能(自 Node v20.6.0 起就已经存在),但这是一个方便的提醒,如果你有基本的 .env
环境变量读取需求,你可以省去另一个依赖。
Zachary Lee
📄 像专业人士一样进行网络抓取:解锁模拟的威力 Lev Gelfenbuim
🛠 代码与工具
📺 YouTube.js:一个非官方的 YouTube API 客户端库 —— ‘InnerTube’ 是 YouTube 使用的客户端 API,你也可以使用它(虽然他们可能不喜欢这样)。它可以运行在 Node.js、Deno 和 现代浏览器中。
LuanRT
get-windows:获取激活且打开的桌面客户端窗口的元数据 —— 获取标题、id、边界矩形大小位置等信息。支持 Windows 7+、macOS 10.14+ 以及 Linux(不支持 Wayland)。
Sindre Sorhus
browser-or-node v3.0:识别代码运行环境 —— 提供一个简单的方式判断代码是运行于浏览器、Node、Web Worker 还是 Deno。支持 ESM 和 CJS。
Dinesh Pandiyan
cron-schedule v5.0:Cron 解析器和调度程序 —— 在浏览器、Node 或 Deno 中解析和查询 cron 样式表达式。
Pascal Sthamer
Odiff:一种快速逐像素图像差异分析工具和库 —— Odiff 声称可以在毫秒级别提供结果。你可以通过 CLI 或 Node 使用 API 处理 PNG、JPG 和 BMP,同时支持跨文件比较。
Dmitriy Kovalenko
rcompat —— 用于服务器的 JS 互操作性和运行时兼容性层。
Terrablue
TsumiLink —— 一个 Lava/NodeLink 兼容客户端。
Fyphen
x-crawl —— 由人工智能辅助的网络爬虫库。
CoderHXL
版本发布:
-
Knip v5.11.0 – 查询项目中未使用的文件、依赖和导出项,现在支持缓存和监听模式。
-
better-sqlite v9.6 – 一种巧妙的 SQLite v3.45.3 使用方式。
-
TestCafe v3.6 – 自动化的端到端网络测试框架。
-
exiftool-vendored v26.0 – 用于跨平台访问 ExifTool,管理多媒体文件中的元数据的工具。
-
JSPyBridge v1.2 – 从 Node 运行 Python,反之亦然。
-
Slonik v41.1 – 类型安全的 Postgres 客户端。
-
ws v8.17 – 快速的 WebSocket 库。
-
Pino v9.0 – 快速的 JSON 日志记录器。