9 released 31 October 2017, latest 9.11.2.
Node.js 9 reached end of life on 30 June 2018.
What changed
Node.js 9 was a short-lived, non-LTS release line that moved the runtime to V8 6.2 and bundled a newer npm 5 release than the preceding major line. The V8 update brought newer JavaScript engine behavior and syntax support, while changes in npm affected dependency installation and lockfile handling. As with any Node.js major version, its V8 and native-module ABI changed, so binary add-ons built for an earlier Node.js major release needed to be rebuilt or replaced. The line also carried forward platform features that were still evolving at the time, so application compatibility needed to be verified rather than assumed from an earlier Node.js version.
What staying costs
Node.js 9 has reached end of life, so security fixes, defect fixes, and compatibility updates are no longer produced for it. Remaining on it leaves the runtime and its bundled components frozen even when vulnerabilities or interoperability problems are found. The practical risk grows as packages, build tools, CI images, operating systems, and managed hosting platforms stop testing against or explicitly exclude this old Node.js version. Native dependencies are especially likely to cause build failures because prebuilt binaries commonly target supported Node.js ABI versions only. Keeping Node.js 9 can also force a team to retain outdated dependency versions and toolchains, increasing the maintenance and security burden of the application.
What to do
Plan a direct migration from Node.js 9 to a currently maintained Node.js LTS line rather than moving through intermediate unsupported releases. Inventory every application, command-line tool, CI job, container image, and deployment target that pins Node.js 9. Review package engine constraints, replace dependencies that cannot support the target runtime, and rebuild or upgrade all native add-ons. Perform clean dependency installs with the target runtime and commit any intentional lockfile changes after reviewing them. Run unit, integration, build, and production-like smoke tests, with particular attention to JavaScript runtime behavior, npm install behavior, TLS and network integrations, and any code that depends on deprecated Node.js APIs. Deploy through a staged rollout with monitoring and a tested rollback path, then remove Node.js 9 from CI, base images, and developer setup documentation.
We can tell you what moving off Node.js 9 involves.
What it takes to move off Node.js 9 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
