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
Node.js 25 最大的底層變化是 升級到 V8 14.1 引擎,這一版本帶來了顯著的性能與開發體驗改進:
V8 優化了內部序列化邏輯,使 JSON.stringify 在處理大型物件時速度提升可達數倍,API 返回結果更穩定。
這對於需要序列化海量配置或響應數據的場景(如 SSR、API 網關)尤其顯著。
Uint8Array Base64/Hex 轉換Node.js 25 新增了 Uint8Array.toBase64() / Uint8Array.fromBase64() 等內置方法,
讓數據編碼和解碼無需依賴第三方庫(如 Buffer 或 base64-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!'
V8 持續改進了 JIT pipeline 與 wasm 編譯路徑,模組加載與執行延遲進一步降低。
這對於使用 Rust / C++ 模組或 AI 推理擴展的 Node 應用尤為有益。
Node.js 25 引入了新的 權限模型(Permission Model),這項實驗性特性正在成為預設安全策略的核心部分。
--allow-net:是否允許網路訪問--allow-inspector:是否允許除錯訪問--experimental-permission:啟用權限模型這意味著開發者可以像在瀏覽器沙箱中一樣,隔離敏感操作,防止包依賴被攻擊或誤用。
// 範例:限制網路訪問
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);
}
💡 運行時需添加:
node --experimental-permission --allow-net app.js
這類安全控制為 Node CLI 工具、Electron 應用或伺服器端插件系統提供了新的“沙箱”基礎。
Node.js 25 正式取消了 --experimental-webstorage 標誌,
Web Storage(localStorage / sessionStorage)現已預設可用!
這意味著 Node.js 現在可以像瀏覽器一樣使用本地存儲,
極大簡化了 SSR(服務端渲染)與同構(isomorphic)開發流程。
// 範例: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 等框架的開發者來說,
這一步讓“前後端共享邏輯”更自然,也減少了環境相容層的複雜性。
Node.js 25 同時對歷史遺留 API 做了重要清理:
SlowBuffer(長期棄用)fs.rmdir(..., { recursive: true }) 的 recursive 選項fs.rm(path, { recursive: true })同時,內部依賴也迎來更新:
- npm → 11.6.2
- nghttp3 → 1.11.0
- ngtcp2 → 1.14.0(增強 QUIC 協議支持)
- 新增 V8 CPU 分析與 QUIC 測試伺服器工具
如果說 v18~v20 是“穩定性時代”,
那麼 v25 明顯代表了 Node.js 向“Web 統一運行時”的進一步靠攏:
| 演進方向 | 具體體現 |
|---|---|
| 性能現代化 | V8 14.1 + 編譯快取 + JIT 優化 |
| 安全預設化 | 權限模型 + 沙箱機制 |
| Web 標準化 | Web Storage、ErrorEvent 全局可用 |
| 跨環境一致性 | SSR、CLI、Wasm 都可共享 API |
這一切,讓 Node.js 不再只是“後端的 JS”,
而是逐步成為一個 可在瀏覽器、伺服器端、邊緣運算中無縫運行的通用平台。
fs.rmdir、SlowBufferNode.js 25 的每一次改動都在回應一個趨勢:
前端與後端的邊界,正在消失。
當你可以在同一份代碼中同時使用 fetch、localStorage、Permission API、Uint8Array 編碼、甚至 Wasm 插件時,
Node.js 已不再只是運行腳本的工具,而是 下一代 Web Runtime 的重要一環。
中文文檔剛上線,如果發現文檔中有什麼問題,歡迎指出,一定及時更新,希望可以方便更多小夥伴。
1024 程式設計師節日快樂,無BUG,祝大家都能早早下班!
我這邊也有一些 Node Nest.js 技術交流交流群,感興趣的可以加我的私人微信 ikoala520 進群,一起學習,共同進步。