Is a JavaScript runtime built on Chrome`s V8 JavaScript engine

Node.js for Mac

Node.js 20.0.0

  -  69.75 MB  -  Open Source

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Node.js 20.0.0.


For those interested in downloading the most recent release of Node.js for Mac or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Node.js 20.0.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Node.js 20.0.0 Screenshot 1
  • Node.js 20.0.0 Screenshot 2
  • Node.js 20.0.0 Screenshot 3
  • Node.js 20.0.0 Screenshot 4

What's new in this version:

Permission Model:
- Node.js now has an experimental feature called the Permission Model
- It allows developers to restrict access to specific resources during program execution, such as file system operations, child process spawning, and worker thread creation.
- The API exists behind a flag --experimental-permission which when enabled will restrict access to all available permissions.
-
- More information about the Permission Model can be found in the Node.js documentation
- The Permission Model was a contribution

Custom ESM loader hooks run on dedicated thread:
- ESM hooks supplied via loaders (--experimental-loader=foo.mjs) now run in a dedicated thread, isolated from the main thread
- This provides a separate scope for loaders and ensures no cross-contamination between loaders and application code
- Synchronous import.meta.resolve()
- In alignment with browser behavior, this function now returns synchronously
- Despite this, user loader resolve hooks can still be defined as async functions (or as sync functions, if the author prefers)
- Even when there are async resolve hooks loaded, import.meta.resolve will still return synchronously for application code

V8 11.3:
- The V8 engine is updated to version 11.3, which is part of Chromium 113

This version includes three new features to the JavaScript API:
- String.prototype.isWellFormed and toWellFormed
- Methods that change Array and TypedArray
- Resizable ArrayBuffer and growable SharedArrayBuffer
- RegExp v flag with set notation + properties of strings
- WebAssembly Tail Call
- The V8 update was a contribution

Stable Test Runner:
- The recent update to Node.js, version 20, includes an important change to the test_runner module. The module has been marked as stable after a recent update. Previously, the test_runner module was experimental, but this change marks it as a stable module that is ready for production use.

Ada 2.0:
- Node.js v20 comes with the latest version of the URL parser, Ada. This update brings significant performance improvements to URL parsing, including enhancements to the url.domainToASCII and url.domainToUnicode functions in node:url.
- Ada 2.0 has been integrated into the Node.js codebase, ensuring that all parts of the application can benefit from the improved performance. Additionally, Ada 2.0 features a significant performance boost over its predecessor, Ada 1.0.4, while also eliminating the need for the ICU requirement for URL hostname parsing.
- Preparing single executable apps now requires injecting a Blob
- Building a single executable app now requires injecting a blob prepared
- This opens up the possibility of embedding multiple co-existing resources into the SEA (Single Executable Apps).

Web Crypto API:
- Web Crypto API functions' arguments are now coerced and validated as per their WebIDL definitions like in other Web Crypto API implementations
- This further improves interoperability with other implementations of Web Crypto API
- This change was made

Official support for ARM64 Windows:
- Node.js now includes binaries for ARM64 Windows, allowing for native execution on the platform
- The MSI, zip/7z packages, and executable are available from the Node.js download site along with all other platforms
- The CI system was updated and all changes are now fully tested on ARM64 Windows, to prevent regressions and ensure compatibility
- ARM64 Windows was upgraded to tier 2 support

WASI version must now be specified:
- When new WASI() is called, the version option is now required and has no default value
- Any code that relied on the default for the version will need to be updated to request a specific version
- This change was made

Deprecations and Removals:
- [3bed5f11e0] - (SEMVER-MAJOR) url: runtime-deprecate url.parse() with invalid ports
- url.parse() accepts URLs with ports that are not numbers. This behavior might result in host name spoofing with unexpected input
- These URLs will throw an error in future versions of Node.js, as the WHATWG URL API does already
- Starting with Node.js 20, these URLS cause url.parse() to emit a warning