Highlights of the new release include improved diagnostics, an upgrade of V8, an experimental Async Local Storage API, hardening of the streams APIs, removal of the Experimental Modules warning, and the removal of some long deprecated APIs.
The diagnostic report feature is now stable and enables users to generate a report on demand or when certain events happen. The report will provide information that can be helpful in diagnosing production problems including crashes, slow performance, memory leaks, high CPU usage, and unexpected errors.
“This is an important step in the ongoing work within the project to improve and build up the diagnostics available when using Node.js and the ease with which they can be used, with much of this work is pushed forward by the Node.js Diagnostics Working Group,” the Node.js team wrote in a blog post.
IBM is also working on ‘report-toolkit,’ which is not part of Node.js, but is asking for feedback from the developer community. According to the company, this will make diagnosis reports even easier to consume. This report-toolkit includes built-in inspect rules that look for common problems, redaction of secrets, purpose-built diffs between two or more diagnostic reports, and transformers to extract and format key information.
The 14.x release also brings an experimental Async Local storage API to help manage context across Asynchronous Calls over a number of releases.
“Being able to trace a transaction through different steps both within a process as well as to external resources (for example, a database call) is an important enterprise requirement. This capability often provides the information you need to identify where in your application a problem is occurring or to identify performance bottlenecks,” IBM wrote in a post.
In addition, changes marked as SemVer major in the Node.js Streams implementation aim to improve consistency across the Streams APIs to remove ambiguity and to streamline behaviors across the various parts of the Node.js core.
The new version also includes a new compiler and platform minimums and an experimental Web Assembly System Interface.
“For the 6 months, while it is in the ‘current’ phase, Node.js 14 will receive the most new features that are contributed to Node.js. For the next 6 months, this release line is perfect for trying out the latest features, testing the compatibility of your project with the latest Node.js updates and giving us feedback so that the release is ready to transition to LTS in October,” the Node.js team wrote.
Additional details on the new release are available here.