以代号“Dubnium”为代表的Node 10于2018年4月24日发布,并将于2018年10月进入长期支持(LTS)。JavaScript开发人员一直在激动地等待今天,今天我们来看看这个版本带来的新特征。

Adding Error Codes

现在,Node中的错误信息已被标准化。

在Node环境中,处理错误信息一直是一个痛苦的工作。 以前,它们只包含一个没有其他标识符关联的字符串消息。 如果开发人员希望程序根据特定消息采取调试操作,唯一的办法是对错误内容进行字符串比较。

由于错误信息的处理需要精确的字符串匹配,因此即使对消息的最小更新也无法添加到下一个主要节点版本,以便它不会中断SemVer。 通过将错误从消息中解耦出来,它将使开发人员更轻松地工作,并允许Node在不引入重大更改的情况下改进错误消息。 要了解更多信息,请阅读Michael Dawson的文章节点错误代码。

N-API 不再是实验性功能

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

之前在Node 8中实验性地引入了N-API,并将从Node 10开始稳定。在Node版本之间升级不再会引起模块损坏。 它也将向后移植以实现Node.js v6.x和v8.x的兼容性。

原生的 Node HTTP/2 变得更稳定

Node 8 引入了一个实验性的 HTTP/2 模块,这次是对 Node 的一次很好的升级。 HTTP/2 改进了标准的 HTTP 协议:

多路复用
单一连接
服务器推送
优先级
头压缩
脱离实验阶段后,原生的 HTTP/2 模块将有助于改进节点服务器和它们提供的Web体验。

V8 引擎 v6.6 的性能改进

Node 停止使用 Chromium 中的 V8 JavaScript引擎,并且 Node.js v10 使用了最新版本的V8 引擎。 对于浏览器而言,Chrome 66 提供的V8 Engine v6.6在JavaScript的解析和编译时间方面可以减少约20-40%。 因此,我们可以预期 Node 10 也会在这方面有更大的收益。 而且它还提供异步生成器和阵列性能改进。

速度才是最重要的,最新的版本并不会让人失望。 查看V8团队的文章以了解更多信息。

更好地支持ES模块(ESM)

// ESM
import pkg from “./pkg”
export default { a, b: 2 }
vs.
// CJS
const pkg = require(“./pkg”)
module.exports = { a, b: 2 }

虽然我们在 Node 10 中没看到对ES模块的全部支持,但他们仍在努力完善。

Node.js 一直在使用CommonJS(CJS),它是 require 和 module.exports 语法。 在2015年的史诗级ES6版本中,推出了一种新的模块系统,即ECMAScript模块(ESM)。 作为ECMA的官方实施以及开发人员的热爱和广泛采用,Node一直致力于实施ESM规范。

将ESM集成到Node中并不是一个完全平滑的路径,因为它与当前系统冲突。 然而,对齐的能力是非常重要的,Node正在努力提供解决方案。 如果您想了解更多信息,Gil Tayar 就此话题写了一篇很棒的文章。

改进了诊断追踪

Node 10 添加了跟踪事件,为开发人员提供更多关于其Node.js应用程序可见性。 这种新的功能可以提供有关时间和性能问题的改进指标。 API 允许用户在运行时打开或关闭事件,从而可以根据需要诊断问题。

在启动 node 应用时,添加参数 --trace-event-categories可以将其打开,可以文档里了解到更多。

配备npm 6

npm最近从v5.7升级到v6.0,并且Node 10将立即提供更新。npm的这一版本增加了所有各种改进,包括性能,安全性和稳定性。 在他们的博客上了解更多关于npm v6的信息。

升级到OpenSSL 1.1.0版

Node配备了现代加密支持,可支持备受期待的 ChaCha20 密码和 Poly1305 验证器。 TLS 1.3最近已完成定稿,待 Node.js v10 在10月份发布 LTS 时,它将会完全支持该标准。

fs 也可以有 promise

与文件系统交互是许多 Node 应用程序的主要组成部分,Node 10将承诺发行fs包的实验版本。 以前这些函数通过回调处理异步操作,但可以使用Node 8附带的util.promisify()函数进行转换。现在,开发人员可以在不需要额外步骤的情况下使用带有promise的fs。

原文

https://levelup.gitconnected....

Node 10 新功能概览(译)相关推荐

  1. kail linux稳定版本,Kali Linux 2020.3 稳定版已发布 更新后新功能概览

    Kali Linux 2020.3稳定版已发布,新版带来了许多令人印象深刻的更新,例如引入 zsh,并宣布从 bash 切换至 zsh 的计划(目前仍然默认使用 bash,2020.4 将默认使用 z ...

  2. Windows Server 2008 R2之新功能概览

    1.仅支持64位 R2 只能安装在64位硬件,不能在32位上.它支持多达256个核心. 2.AD管理中心 它取代了AD.域和信任.站点和服务,以及用户和计算机管理工具.它是建立在PowerSell之上 ...

  3. pytorch1.10新功能inference_mode

    类原型:CLASS torch.autograd.inference_mode(mode=True) InferenceMode是在pytorch1.10版本中引入的新功能,是一个类似于 no_gra ...

  4. Windows 10新功能

    Windows 10 中面向开发人员的新增功能 Windows 10 及新增的开发人员工具将提供新通用 Windows 平台支持的工具.功能和体验.在 Windows 10 上安装完工具和 SDK 后 ...

  5. swift4 linux,Swift 4正式发布,新功能概览

    Swift最新的主要版本提供了针对语言本身以及标准库的大量改动和更新,最重要的变化包括新增的String功能.扩展集合.归档和序列化等. Swift 4中,String已全面遵循Collection协 ...

  6. 使用CLI模板 | Visual Studio 2019(16.10)新功能试用

    Visual Studio很早以前就有模板了,.NET Core命令行界面(CLI)也能够安装模板并通过dotnet new命令使用它们.然而,但是并没有什么简单的方法可以在Visual Studio ...

  7. 删除未使用的引用 | Visual Studio 2019(16.10)新功能试用

    当解决方案很小时,我们清楚地知道解决方案中使用了哪些项目引用和NuGet包,要想清理它们很容易.而对于大型的解决方案,有哪些包在使用中,开发人员很难找到它们,或者找起来可能很耗时. Visual St ...

  8. Swift 4正式发布,新功能概览

    Swift最新的主要版本提供了针对语言本身以及标准库的大量改动和更新,最重要的变化包括新增的String功能.扩展集合.归档和序列化等. \\ Swift 4中,String已全面遵循Collecti ...

  9. Source Generators(源代码生成器)的调试器支持 | Visual Studio 2019(16.10)新功能试用...

    开始之前 Source Generators旨在启用编译时间元编程,即可以在编译时间创建并添加到编译中的代码. 首先用一个Demo为不了解Source Generators的朋友演示一下功能.Sour ...

最新文章

  1. php 去除中英文空格,php去除字符串首尾中英文空格程序-PHP源码
  2. OpenCV使用pointPolygonTest的实例(附完整代码)
  3. oracle不属于集合操作,oracle 笔试题
  4. pythontuple数据类型_数据类型-元组Tuple
  5. MySQL高级特性之分区表
  6. C++控制台简单的用户登录
  7. icesat2:strong beam and weak beam
  8. mysqlplus 字段验证策略fieldStrategy
  9. 17届智能汽车竞赛无线充电组的方案研究(非正经)
  10. 数字化场景——数字化营销
  11. 数据库mysql去重_MySQL数据库去重 SQL解决
  12. CrossOver Mac2022双系统虚拟机软件
  13. 古风排版 python
  14. BJ模拟 Different Trips【树上后缀数组】
  15. 手机端 19FPS 的实时目标检测算法:YOLObile
  16. VSCode插件之Beautify
  17. 小学生python游戏编程arcade----动画图片实现爆炸效果
  18. Java多线程socket网络协议传输
  19. 修正MP4文件头信息实现流式加载及播放
  20. 关于layui的table组件不支持IE导出的问题简单修复

热门文章

  1. JAVA1100集,唤醒错误11002
  2. java分哪几部分_JVM 是由哪几部分组成的?
  3. 发布json数据_数据库每周国际新闻 20201211
  4. c++读取.dat文件_MySQL 数据文件类型
  5. 图像降噪算法——图像噪声模型
  6. 【杂谈】手把手带你配置深度学习环境
  7. 【杂谈】菜鸟误入linux会有哪些惨痛的经历
  8. 全球及中国操纵杆控制系统行业应用动态与十四五形势分析报告2022版
  9. 中国齿轮行业竞争分析与投资规模预测报告2021-2027年
  10. 二.安全NA之ASA基础