Latest in branch 14.x
14.21.3
Released 16 Feb 2023
(3 years ago)
SoftwareNode.js
Branch14.x
StatusLTS
End of life
CodenameFermium
Initial release14.0.0
21 Apr 2020
(6 years ago)
Latest release14.21.3
16 Feb 2023
(3 years ago)
End of bug fixes19 Oct 2021
(Ended 4 years, 7 months ago)
End of security fixes30 Apr 2023
(Ended 3 years ago)
Release noteshttps://github.com/nodejs/node/releases/tag/v14.21.3
Source codehttps://github.com/nodejs/node/tree/v14.21.3
Documentationhttps://nodejs.org/dist/latest-v14.x/docs/api/
Downloadhttps://nodejs.org/download/release/latest-v14.x/
Node.js 14.x ReleasesView full list

What Is New in Node.js 14?

CategoryChange
New FeaturesOptional chaining (?.) and nullish coalescing (??) operators
New FeaturesDiagnostic reports: stable API for process state snapshots
New FeaturesExperimental async local storage (AsyncLocalStorage)
New FeaturesWASI (WebAssembly System Interface) experimental support
ImprovementsV8 8.0 -- optional chaining, nullish coalescing
ImprovementsStreams: more consistent error handling
Improvementsfs.promises API moved from experimental to stable
SecurityOpenSSL 1.1.1g

Optional Chaining and Nullish Coalescing -- Finally Native

Two of the most requested JavaScript features land natively in Node.js 14 via V8 8.0. Optional chaining (?.) short-circuits property access on null/undefined. Nullish coalescing (??) provides a default only when the left side is null or undefined (unlike || which also triggers on 0 or "").

const city = user?.address?.city ?? 'Unknown';
const port = config.port ?? 3000;  // 0 is a valid port, ?? handles that correctly

Previously these required Babel transforms. In Node.js 14 they run natively, reducing transpilation overhead for server-side code.

AsyncLocalStorage -- Request-Scoped Context Without Parameter Passing

AsyncLocalStorage lets you store and retrieve values scoped to an async call tree -- useful for request IDs, user context, logging correlation, and tracing without threading values through every function call.

import { AsyncLocalStorage } from 'node:async_hooks';
const storage = new AsyncLocalStorage();

app.use((req, res, next) => {
  storage.run({ requestId: req.id }, next);
});

function log(msg) {
  const ctx = storage.getStore();
  console.log(`[${ctx?.requestId}] ${msg}`);
}

OpenTelemetry, Datadog APM, and many tracing libraries use this API internally. In v14 it's experimental but widely adopted.

fs.promises Now Stable

The fs.promises API (or import { promises as fs } from 'node:fs') graduates from experimental to stable. All async file operations are available as native promises without callbacks.

import { readFile, writeFile } from 'node:fs/promises';
const content = await readFile('./config.json', 'utf8');
const data = JSON.parse(content);

Diagnostic Reports

The diagnostic report API is now stable. You can generate a JSON snapshot of the process state (heap, handles, libuv, environment variables) on demand or on crash -- invaluable for debugging production issues in environments where you cannot attach a debugger.

process.report.writeReport('./crash-report.json');
// or trigger on signal:
node --report-on-signal --report-signal=SIGUSR2 server.js

FAQ

Is Node.js 14 an LTS release?
Yes. Node.js 14 (codename "Fermium") was an LTS release with active support ending April 2023 and security support ending April 2023. It is fully end-of-life.

Can I use optional chaining with TypeScript in Node.js 14?
Yes. TypeScript has supported ?. since v3.7. When targeting Node.js 14, you can set "target": "ES2020" in tsconfig.json to emit native optional chaining.

Is AsyncLocalStorage production-safe in Node.js 14?
It works well in practice, but the API was officially experimental in v14. It stabilizes fully in Node.js 16. For production usage in v14, include process isolation tests and monitor for async context propagation edge cases.

What is WASI and should I use it in Node.js 14?
WASI (WebAssembly System Interface) lets WASM modules access file system and network resources. In Node.js 14 it is experimental and the API changes across versions. Use it for prototyping only.

Does fs.promises support streaming?
Not directly -- fs.promises is for file reads/writes as resolved data. For streaming, use fs.createReadStream() and fs.createWriteStream(), which return traditional Node.js streams.

Releases In Branch 14.x

VersionRelease datenpm version
14.21.316 Feb 2023
(3 years ago)
6.14.18
14.21.213 Dec 2022
(3 years ago)
6.14.17
14.21.104 Nov 2022
(3 years ago)
6.14.17
14.21.001 Nov 2022
(3 years ago)
6.14.17
14.20.123 Sep 2022
(3 years ago)
6.14.17
14.20.007 Jul 2022
(3 years ago)
6.14.17
14.19.317 May 2022
(4 years ago)
6.14.17
14.19.204 May 2022
(4 years ago)
6.14.17
14.19.117 Mar 2022
(4 years ago)
6.14.16
14.19.001 Feb 2022
(4 years ago)
6.14.16
14.18.310 Jan 2022
(4 years ago)
6.14.15
14.18.230 Nov 2021
(4 years ago)
6.14.15
14.18.112 Oct 2021
(4 years ago)
6.14.15
14.18.028 Sep 2021
(4 years ago)
6.14.15
14.17.630 Aug 2021
(4 years ago)
6.14.15
14.17.511 Aug 2021
(4 years ago)
6.14.14
14.17.429 Jul 2021
(4 years ago)
6.14.14
14.17.305 Jul 2021
(4 years ago)
6.14.13
14.17.201 Jul 2021
(4 years ago)
6.14.13
14.17.115 Jun 2021
(4 years ago)
6.14.13
14.17.011 May 2021
(5 years ago)
6.14.13
14.16.106 Apr 2021
(5 years ago)
6.14.12
14.16.023 Feb 2021
(5 years ago)
6.14.11
14.15.509 Feb 2021
(5 years ago)
6.14.11
14.15.404 Jan 2021
(5 years ago)
6.14.10
14.15.317 Dec 2020
(5 years ago)
6.14.9
14.15.215 Dec 2020
(5 years ago)
6.14.9
14.15.116 Nov 2020
(5 years ago)
6.14.8
14.15.027 Oct 2020
(5 years ago)
6.14.8
14.14.015 Oct 2020
(5 years ago)
6.14.8
14.13.107 Oct 2020
(5 years ago)
6.14.8
14.13.029 Sep 2020
(5 years ago)
6.14.8
14.12.022 Sep 2020
(5 years ago)
6.14.8
14.11.015 Sep 2020
(5 years ago)
6.14.8
14.10.110 Sep 2020
(5 years ago)
6.14.8
14.10.008 Sep 2020
(5 years ago)
6.14.8
14.9.027 Aug 2020
(5 years ago)
6.14.8
14.8.011 Aug 2020
(5 years ago)
6.14.7
14.7.029 Jul 2020
(5 years ago)
6.14.7
14.6.020 Jul 2020
(5 years ago)
6.14.6
14.5.030 Jun 2020
(5 years ago)
6.14.5
14.4.002 Jun 2020
(5 years ago)
6.14.5
14.3.019 May 2020
(6 years ago)
6.14.5
14.2.005 May 2020
(6 years ago)
6.14.4
14.1.029 Apr 2020
(6 years ago)
6.14.4
14.0.021 Apr 2020
(6 years ago)
6.14.4