Node.js 22.8.0 has introduced a new and significant feature for developers working with large-scale applications: a built-in JavaScript API that enables on-disk caching of all modules loaded after it is invoked. This new API, called module.enable.CompileCache()
, aims to optimize the performance of applications by reducing the need to recompile modules, saving both time and computational resources. By utilizing this functionality, Node.js developers now have an easy and efficient way to manage caching for their code, which can be particularly useful for applications with complex module structures or high resource demands.
Prior to this update, the only way to enable on-disk caching was through the NODE_COMPILE_CACHE
environment variable, which could be set by end users. This new API expands the functionality by allowing tool and library authors to manage the caching of their code directly within their applications. This offers a more flexible solution for handling module caching, especially when dealing with libraries and tools that require consistent performance and scalability. Additionally, this built-in caching mechanism offers better support for ECMAScript Modules (ESM), making it a more streamlined and reliable solution compared to third-party packages like v8-compile-cache
.
With the release of Node.js 22.8.0 on September 3, Node.js continues to evolve as a powerful runtime for JavaScript development. This version is classified as a current release, meaning it is available for developers to use, though it is not yet designated as long-term support (LTS). Alongside the module.enable.CompileCache()
feature, the update introduces another noteworthy enhancement: developers can now require code coverage to meet a specific threshold before a process successfully exits. This feature helps ensure that critical portions of the codebase are adequately tested before deployment, improving overall application quality and reliability. Developers can control coverage thresholds for branch, function, and line coverage by using the –experimental-test-coverage
flag.
Furthermore, Node.js 22.8.0 also enhances the vm.createContext()
method. A new variation of this method allows for creating a context without applying the “contextify” behavior to its global object, a feature that is particularly useful for cases where the context needs to be frozen or when global access speeds need to be optimized. This change improves the flexibility of virtual machine contexts, enabling developers to create more performant and secure environments for executing JavaScript code. With these advancements, Node.js 22.8.0 offers developers new tools and capabilities to improve the efficiency, performance, and reliability of their applications.