Node.js v8.0.0 正式發布,帶來大量更新
Node.js 基金會宣布發布 Node.js v8.0.0。新版主要的特性包括:npm 客戶端升級到 5.0.0 版;基于 Chrome JS 引擎 V8 升級到 v5.8;Node.js API (N-API)允許創建原生擴展,編譯一次可在多個 Node 版本中使用;更新 async_hooks 模塊;完整支持 WHATWG URL API 解析器;Buffer API 引入了大量新變化;新的 util.promisify() API; console 模塊加入 console.log() 和 console.error(),等等。Node.js v8 將是下一個長期支持版(LTS)。(文/Solidot)
Node.js v8.0.0 已正式發布。v8.0.0 是下一個主要的版本,帶來了一系列重大的變化和新功能,內容十分多,本文包含主要重要的更改和功能的摘要。
npm 5.0.0
npm 最近宣布發布了 5.0.0 版本的 npm 客戶端,現在在 Node.js 8.0.0 中使用了這個重要的新版本。
V8 5.8
Node.js 8.0.0 使用了 V8 5.8,這是 JavaScript 運行時的重要更新,其中包括性能方面和面向開發者 API 的重大改進。對 Node.js 開發者來說最重要的是 V8 5.8 保證與 V8 5.9 和即將推出的 V8 6.0 具有 ABI 的向前兼容性,這將有助于確保 Node.js 原生插件生態系統的穩定性。在 Node.js 8 的生命周期中,會計劃升級到 5.9 甚至 6.0。
V8 5.8 引擎還有助于設置新的 TurboFan + Ignition 編譯器管道(compiler pipeline)的轉移,這將為所有 Node.js 應用程序提供重要的新的性能優化。雖然 V8 之前的版本已經存在,但 TurboFan 和 Ignition 將在 V8 5.9 中***默認啟用。新的編譯器管道代表了這樣一個重大變化 —— Node.js 核心技術委員會(CTC)選擇推遲最初發布安排在 4 月的 Node.js 8,以便更好地適應它。
Node.js API (N-API)
對于使用或創建原生插件的 Node.js 開發者,新的實驗性的 Node.js API(N-API)對于現有的 Native Abstractions for Node.js (nan) 來說是一個重大的改進,它將允許原生插件在一個系統上編譯一次,并在多個版本的 Node.js 上使用。
通過提供一個新的虛擬機不可知的應用程序二進制接口(ABI),原生插件不僅可以在多個版本的 V8 JavaScript 運行時上運行,還可以在微軟的 Chakra-Core 運行時上使用。
N-API 在 Node.js 8.0.0 中是實驗性的功能。
完全支持 WHATWG URL 解析器
WHATWG URL 標準實現的實驗性 URL API 去年已經添加到 Node.js 7.x 中,自那以來一直在積極發展。現在,從 8.0.0 開始,新的 URL 實現現在是 Node.js 中完全支持的非實驗性 API。下面展示了一個示例用法,官方文檔中提供了更多詳細信息。
- const URL = require('url').URL;
- const myUrl = new URL('/a/path', 'https://example.org/');
這個新的 URL 實現是最重要的,因為它與現代 Web 瀏覽器(如 Chrome,Firefox,Edge 和 Safari)中的 URL 實現和 API 相匹配,允許使用 URL 在不同環境之間共享代碼。
長期支持
Node.js v8 是下一個長期支持(LTS)的版本。這將在 2017 年 10 月進入,一旦 Node.js 8 轉換到 LTS,將會使用代號 Carbon。
還包括以下更新:
- 更新 async_hooks 模塊
- Buffer API 引入了大量新變化
- 新的 util.promisify() API
- console 模塊加入 console.log() 和 console.error()
更多內容請參閱發布主頁(https://nodejs.org/en/blog/release/v8.0.0/)、更新日志(https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md)。
下載地址
- Source code (zip)(https://github.com/nodejs/node/archive/v8.0.0.zip)
- Source code (tar.gz)(https://github.com/nodejs/node/archive/v8.0.0.tar.gz)
- https://nodejs.org/en/download/