Node.js 25 正式发布:性能飙升、安全升级、全面向 Web 靠拢!

一、Node.js 25 来了:一次更现代、更安全的"Web Runtime"进化

Node.js 25.0.0 已于本周正式发布。

这一版本不仅带来了 V8 引擎升级(14.1) ,还正式引入 细粒度权限模型默认启用的 Web Storage API,让 Node.js 在性能、安全性与 Web 标准兼容性上迈出关键一步。

从整体趋势上看,Node.js 正在从"后端运行时"演化为一个 更贴近浏览器语义的通用执行平台

本次版本代号 "Iron",象征稳定与强化 ------ 这也是官方对现代 Node 的定位:高性能 + 高安全 + 高兼容性


大家好,我是考拉!

这是我历时 1 个多月翻译的 Nest.js中文文档( V10.x 版本)。就在 1024 这天上线吧!网站访问速度还是蛮快的哦!

Nest中文文档访问地址 Nest中文文档 nestjs.inode.club

二、V8 升级到 14.1:性能全面提升

Node.js 25 最大的底层变化是 升级到 V8 14.1 引擎,这一版本带来了显著的性能与开发体验改进:

1. JSON.stringify 大幅提速

V8 优化了内部序列化逻辑,使 JSON.stringify 在处理大型对象时速度提升可达数倍,API 返回结果更稳定。

这对于需要序列化海量配置或响应数据的场景(如 SSR、API 网关)尤其显著。

2. 内置 Uint8Array Base64/Hex 转换

Node.js 25 新增了 Uint8Array.toBase64() / Uint8Array.fromBase64() 等内置方法,

让数据编码和解码无需依赖第三方库(如 Buffer 或 base64-js),简化脚本逻辑。

js 复制代码
// 示例:高效转换 Buffer ⇄ Base64
const buffer = Buffer.from('Hello, Node.js 25!');
const uint8 = new Uint8Array(buffer);
const base64 = uint8.toBase64();

console.log(base64); // 'SGVsbG8sIE5vZGUuanMgMjUh'

// 反向转换
const decoded = Uint8Array.fromBase64(base64);
console.log(Buffer.from(decoded).toString()); // 'Hello, Node.js 25!'

3. WebAssembly + JIT 优化

V8 持续改进了 JIT pipeline 与 wasm 编译路径,模块加载与执行延迟进一步降低。

这对于使用 Rust / C++ 模块或 AI 推理扩展的 Node 应用尤为有益。


三、安全模型全面增强:默认更安全的 Node.js

Node.js 25 引入了新的 权限模型(Permission Model),这项实验性特性正在成为默认安全策略的核心部分。

更细粒度的运行时控制

  • --allow-net:是否允许网络访问
  • --allow-inspector:是否允许调试访问
  • --experimental-permission:启用权限模型

这意味着开发者可以像在浏览器沙箱中一样,隔离敏感操作,防止包依赖被攻击或误用。

js 复制代码
// 示例:限制网络访问
import net from 'node:net';

try {
  const socket = net.createConnection({ host: 'example.com', port: 80 });
  socket.on('connect', () => console.log('Connected!'));
} catch (err) {
  console.error('Permission denied:', err.message);
}

💡 运行时需添加:

bash 复制代码
node --experimental-permission --allow-net app.js

这类安全控制为 Node CLI 工具、Electron 应用或服务端插件系统提供了新的"沙箱"基础。


四、Web 标准整合:默认启用 Web Storage

Node.js 25 正式取消了 --experimental-webstorage 标志,
Web Storage(localStorage / sessionStorage)现已默认可用!

这意味着 Node.js 现在可以像浏览器一样使用本地存储,

极大简化了 SSR(服务端渲染)与同构(isomorphic)开发流程。

js 复制代码
// 示例:Node 中的 localStorage
localStorage.setItem('user', JSON.stringify({ name: 'Developer' }));
const user = JSON.parse(localStorage.getItem('user'));
console.log(user); // { name: 'Developer' }

localStorage.clear();

对于使用 React Server Components、Next.js、Remix 等框架的开发者来说,

这一步让"前后端共享逻辑"更自然,也减少了环境兼容层的复杂性。


五、弃用与清理:告别旧时代的 API

Node.js 25 同时对历史遗留 API 做了重要清理:

  • 移除 SlowBuffer(长期弃用)
  • 废弃 fs.rmdir(..., { recursive: true }) 的 recursive 选项
    → 改用 fs.rm(path, { recursive: true })
  • 🧰 支持便携编译缓存(Portable Compile Cache)
    提升跨平台构建与 CI/CD 性能
  • 🔬 WebAssembly 新增 JSPI(JavaScript Plugin Interface)
    支持 JS ↔ Wasm 的高效交互

同时,内部依赖也迎来更新:

  • npm → 11.6.2
  • nghttp3 → 1.11.0
  • ngtcp2 → 1.14.0(增强 QUIC 协议支持)
  • 新增 V8 CPU 分析与 QUIC 测试服务器工具

六、Node.js 25 的意义:从"服务端"走向"通用执行平台"

如果说 v18~v20 是"稳定性时代",

那么 v25 明显代表了 Node.js 向"Web 统一运行时"的进一步靠拢:

演进方向 具体体现
性能现代化 V8 14.1 + 编译缓存 + JIT 优化
安全默认化 权限模型 + 沙箱机制
Web 标准化 Web Storage、ErrorEvent 全局可用
跨环境一致性 SSR、CLI、Wasm 都可共享 API

这一切,让 Node.js 不再只是"后端的 JS",

而是逐步成为一个 可在浏览器、服务端、边缘计算中无缝运行的通用平台


七、升级建议

  • v25 属于 Current(实验)版本,不建议立即用于生产环境
  • 适合探索新特性、验证兼容性、提前适配 v26 LTS
  • 重点关注代码中使用的:
    • fs.rmdirSlowBuffer
    • 自定义权限模型(--allow-*)
    • Base64/Hex 编码逻辑
  • 对 CLI / SSR / AI 推理类项目建议创建独立分支进行试用

八、结语:更"Web"的 Node,更强的生态未来

Node.js 25 的每一次改动都在回应一个趋势:
前端与后端的边界,正在消失。

当你可以在同一份代码中同时使用 fetchlocalStoragePermission APIUint8Array 编码、甚至 Wasm 插件时,

Node.js 已不再只是运行脚本的工具,而是 下一代 Web Runtime 的重要一环

中文文档刚上线,如果发现文档中有什么问题,欢迎指出,一定及时更新, 希望可以方便更多小伙伴。

1024 程序员节日快乐,无BUG,祝大家都能早早下班!

我这边也有一些Node Nest.js 技术交流交流群,感兴趣的可以加我的私人微信 ikoala520 进群,一起学习,共同进步。

相关推荐
ANYOLY8 小时前
分布式面试题库
分布式·面试·职场和发展
遇到困难睡大觉哈哈8 小时前
Harmony os 静态卡片(ArkTS + FormLink)详细介绍
前端·microsoft·harmonyos·鸿蒙
用户47949283569158 小时前
Bun 卖身 Anthropic!尤雨溪神吐槽:OpenAI 你需要工具链吗?
前端·openai·bun
p***43489 小时前
前端在移动端中的网络请求优化
前端
g***B7389 小时前
前端在移动端中的Ionic
前端
拿破轮9 小时前
使用通义灵码解决复杂正则表达式替换字符串的问题.
java·服务器·前端
whltaoin9 小时前
【 Web认证 】Cookie、Session 与 JWT Token:Web 认证机制的原理、实现与对比
前端·web·jwt·cookie·session·认证机制
Aerelin10 小时前
爬虫playwright入门讲解
前端·javascript·html·playwright
5***o50010 小时前
前端在移动端中的NativeBase
前端
灵魂学者10 小时前
Vue3.x —— 父子通信
前端·javascript·vue.js·github