前言
最近看到 Node.js
发布了新版本,详细的更新内容来了!

往期精彩推荐
- Prisma ORM 又双叒叕发布新版本了!🚀🚀🚀
- 🚀🚀🚀Prisma ORM 6.10.0 重大更新,VSCode 集成,远程 MCP ,更加智能了!
- 🚀🚀🚀恭喜 Rolldown 获得 JS 开源奖年度突破奖,2025 年 JS 开源奖典礼回顾!🎉🎉🎉
- 更多精彩文章欢迎关注我的公众号:萌萌哒草头将军
正文
Node.js v22.18.0
是 Node.js
长期支持版本(LTS
)的最新迭代,这一版本聚焦于提升开发者体验、增强应用性能和安全性,引入了多项新功能!
以下是 v22.18.0
的核心更新和新特性的详细介绍。
新特性与改进
默认启用 TypeScript 类型剥离(实验性)
Node.js v22.18.0
引入了一项实验性功能:默认启用 TypeScript 类型剥离(Type Stripping)。这一功能极大简化了 TypeScript 开发者的工作流。
然而,由于其实验性,存在一些限制,开发者可以通过 --no-experimental-strip-types
标志禁用此功能。
ESM import.meta.main
支持
对于使用 ECMAScript
模块(ESM)的开发者,v22.18.0
实现了 import.meta.main
功能。这一特性允许开发者检查模块是否为应用程序的主入口点,适用于需要条件逻辑的场景。
示例:
javascript
if (import.meta.main) {
console.log("这是主模块!");
}
文件系统事件 AsyncIterator 优化
文件系统事件(fs-events
)在使用 AsyncIterator
时得到了优化,能够更好地处理突发事件(burst)。这一改进提升了文件监视的效率和可靠性,适用于需要实时监控文件变化的场景。
ts
for await (let found of fs.watch('my dir')) {
console.log(found);
await sleep(10000); // any events happening during these 10seconds will be missed;
}
进程权限模型标志传播
在使用 spawn
创建子进程时,权限模型标志现在会自动传播。这一功能增强了子进程的安全性,确保它们继承正确的权限设置。
ts
const { spawnSync } = require('node:child_process')
const out = spawnSync(process.execPath, ['-p', '1 + 1'], { env: {
'NODE_DEBUG_NATIVE': 'PERMISSION_MODEL'
} })
console.log(out.status)
console.log(out.stdout.toString())
SQLite readBigInts
选项
SQLite 模块新增了 readBigInts
选项,支持在数据库连接级别处理大整数。这一功能对于需要精确处理大数值的应用非常有用。
Addon 权限模型支持
Addon 现在支持 permission.has(addon)
,允许开发者检查特定 Addon 的权限。
URL fileURLToPathBuffer
API
URL 模块新增了 fileURLToPathBuffer
API,用于将文件 URL 转换为 Buffer 格式。在处理文件路径时提供了更大的灵活性,适用于需要以 Buffer 形式操作路径的场景。
新增 --watch-kill-signal
标志
监视模式新增了 --watch-kill-signal
标志,允许开发者指定终止进程的信号。这一功能提供了对监视模式行为的更精细控制。
Worker 异步可释放
Worker
类现在实现了异步可释放模式(async disposable),简化了 Worker 资源清理的过程。
ts
await using worker = new Worker(...);
监视模式标志文档完善
Node.js 的监视模式(watch mode)相关标志现已全部记录在 node.1
文档中。
Amaro 更新至 1.1.0
Amaro
是 Node.js
构建系统(特别是与 V8
、Bazel
和依赖版本管理)相关的一个辅助工具。
Amaro
工具现已更新至 1.1.0 版本,通常包括 bug
修复和性能优化。
最后
Node.js v22.18.0
的发布为开发者带来了丰富的功能更新和优化,每一项变化都旨在提升开发效率和应用质量!
详细更新内容可以看这里:nodejs.org/en/blog/rel...
今天的分享就这些了,感谢大家的阅读!如果文章中存在错误的地方欢迎指正!