Node.js 13, the latest version of the popular JavaScript runtime, was released this week, emphasizing worker threads, programming enhancements, and internationalization capabilities.
Node.js 13 replaces Node.js 12 as the “current” release but Node.js 12 remains the long-term support (LTS) release. Thus Node.js 13 is not recommended for production use. Nevertheless, Node.js 13 will be useful for building and testing the latest features. Developers can use Node.js 13 to ensure that their packages and applications will be compatible with future versions.
These are the key new capabilities in Node.js 13:
- Worker threads for performing CPU-intensive JavaScript operations are now stable in both Node.js 12 and Node.js 13.
- Node.js releases now are built with default full-ICU (International Components for Unicode) support. All locales supported by ICU are included and Intl-related APIs may return different values than before.
- N-API, for building native add-ons, has been updated with additional supported functions.
- If the validation function passed to
assert.throws()
orassert.rejects()
returns a value besidestrue
, an assertion error will be thrown instead of the original error. This will highlight the programming mistake. Also, if a constructor function is passed to validate the instance of errors thrown inassert.throw()
orassert.reject()
, an assertion will be thrown instead of the original error. - The minimum supported version of Xcode is now Xcode 10. Xcode is Apple’s integrated development environment, available only for MacOS. Developers can continue to use Xcode 8 for now, but this may change in a future Node.js 13.x release.
- The Google V8 JavaScript engine used in Node.js has been updated to version 7.8, which brings performance improvements for object destructuring, memory usage, and WebAssembly startup time.
- For HTTP communications, data will no longer be emitted after a socket error. In addition, the legacy HTTP parser has been removed and the
request.connection
andresponse.connection
properties have been runtime deprecated. The equivalentrequest.socket
andresponse.socket
should be used instead. - The timing and behavior of streams was consolidated for several edge cases.
Where to download Node.js
You can download Node.js from the project website.