Node 10、12、14 版本的更新比对

时间:2020-05-08 14:01:09   收藏:0   阅读:421

Node 10

参见 Node CHANGELOG_V10

但 ES 模块仍旧属于实验性质,并不能在代码中直接使用 import/export 除非开启实验性质的 flag,想使用还是得参见如何在 NodeJS 中写 ES6 import

Node 8 引入了一个实验性的 HTTP/2 模块,这次是对 Node 的一次很好的升级。 HTTP/2 改进了标准的 HTTP 协议,有着多路复用,单一连接,服务器推送,头压缩等先进处,此次还修复了一些安全性的问题,并且还加上 websocket 的支持。

Node文档将 N-API 描述为构建本地插件的 API。 它独立于底层的 JavaScript 运行时(ex V8),并作为 Node.js 本身的一部分进行维护。 这个 API 将是跨 Node.js 版本稳定的应用程序二进制接口(ABI)。 它旨在将 Addons 与基础 JavaScript 引擎中的更改隔离,并允许为一个版本编译的模块在更高版本的 Node.js 上运行,而无需重新编译。

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 12

参见 Node CHANGELOG_V12

Node 14

参见 Node CHANGELOG_V14

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 后可以使用并且不报警了。

原文:https://www.cnblogs.com/everlose/p/12849721.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!