node版本14与10的区别是什么

2022-07-07

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版本14与10的区别是什么

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 to 6.6.346.24。Node 停止使用 Chromium 中的 V8 引擎,而使用 v8 的 6.6 版本,

  • 改进了诊断追踪。Node 10 添加了跟踪事件,为开发人员提供更多关于其Node.js应用程序可见性。在启动 node 应用时,添加参数 --trace-event-categories可以将其打开,可以文档里了解到更多

  • update npm to 6.14.3。更新 NPM 6,npm的这一版本增加了所有各种改进,包括性能,安全性和稳定性

  • upgrade openssl sources to 1.1.1e。Node配备了现代加密支持,可支持备受期待的 ChaCha20 密码和 Poly1305 验证器

  • fs: remove experimental warning for fs.promises。fs 可直接使用 promise 了,不再需要像 Node 8 中使用 util.promisify()函数进行转换。

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 Removal

In 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.

自 Node 13 开始可以直接使用 ES Modules 但是会报警,Node 14 后可以使用并且不报警了。

  • V8 升级到 8.1

  • ArrayBuffer 使用新的 V8 ArrayBuffer API

  • openssl sources 更新到 1.1.1

  • Console groupIndentation option。console 可以配置超过两个空格的长度。

推荐学习:《nodejs视频教程》

以上就是node版本14与10的区别是什么的详细内容,更多请关注北冥有鱼其它相关文章!

本文转载自【PHP中文网】,希望能给您带来帮助,苟日新、日日新、又日新,生命不息,学习不止。

《node版本14与10的区别是什么.doc》

下载本文的Word格式文档,以方便收藏与打印。