node版本14與10的區別:1、10版本停止使用Chromium中的V8引擎,使用V8的6.6版本,而14版本使用的V8升級到了8.1版本;2、14版本可以直接使用「ES Modules」且不會警報,而10版本則不能使用。
本文操作環境:Windows10系統、nodejs 10&&node 14版、Dell G3電腦。
Node 10
vm: add dynamic import support。支援動態的 import。
但 ES 模組仍舊屬於實驗性質,並不能在程式碼中直接使用 import/export 除非開啟實驗性質的 flag,想使用還是得參見如何在 NodeJS 中寫 ES6 import。
Updated nghttp2 to 1.34.0. This adds RFC 8441 extended connect protocol support to allow use of WebSockets over HTTP/2。將 nghttp2 更新為 1.34.0。這增加了 RFC 8441 擴展連接協定支持,以允許透過 HTTP/2 使用 WebSockets。
Node 8 引入了一個實驗性的 HTTP/2 模組,這次是 Node 的一次很好的升級。 HTTP/2 改進了標準的 HTTP 協議,有著多路復用,單一連接,伺服器推送,頭壓縮等先進處,此次還修復了一些安全性的問題,並且還加上 websocket 的支援。
Adding Error Codes。現在,Node中的錯誤訊息已標準化。
The n-api is no longer experimental. [cd7d7b15c1]。 N-API 不再是實驗性功能
Node文件將 N-API 描述為建立本機外掛程式的 API。它獨立於底層的 JavaScript 運行時(ex V8),並作為 Node.js 本身的一部分進行維護。這個 API 將是跨 Node.js 版本穩定的應用程式二進位介面(ABI)。它旨在將 Addons 與基礎 JavaScript 引擎中的更改隔離,並允許為一個版本編譯的模組在更高版本的 Node.js 上運行,而無需重新編譯。
patch V8 至 6.6.346.24。 Node 停止使用 Chromium 中的 V8 引擎,而使用 v8 的 6.6 版本,
const fs = require('fs'); const fsPromises = fs.promises; // 同步读取 console.log(fs.readFileSync('temp.txt', 'utf8')); // promise 读取,感觉更麻烦了。 async function doRead() { let filehandle = null; try { filehandle = await fsPromises.open('temp.txt', 'r+'); let read = await filehandle.readFile(); console.log(read); } finally { if (filehandle) { // 如果文件已打开,则关闭文件。 await filehandle.close(); } } } doRead().catch(console.error);
Node 14
ECMAScript Modules - Experimental Warning RemovalIn Node.js 13 we removed the need to include the --experimental-modules flag, but when running EcmaScript Modules in Node.js, this would still result in a warning ExperimentalWarning: The ESM module loader is experimental.V8 升級到8.1Node#.可以直接使用ES Modules 但是會報警,Node 14 後可以使用且不警報了。
以上是node版本14與10的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!