-
Notifications
You must be signed in to change notification settings - Fork 141
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f28c1df
commit df10cd0
Showing
1 changed file
with
44 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
title: Moving our Ecosystem to Node 22 | ||
date: 2024-12-02T00:00:00.000Z | ||
authors: VerteDinde | ||
slug: ecosystem-node-22 | ||
tags: [community, ecosystem] | ||
--- | ||
|
||
In early 2025, Electron’s npm ecosystem repos (under the `@electron/` and `@electron-forge/` namespaces) will move to Node.js 22 as the minimum supported version. | ||
|
||
--- | ||
|
||
In early 2025, Electron’s npm ecosystem repos (under the `@electron/` and `@electron-forge/` namespaces) will move to Node.js 22 as the minimum supported version. | ||
|
||
### What does this mean? | ||
|
||
Currently, most of the In the past, packages in Electron’s npm ecosystem (Forge, Packager, etc) willhave supported Node versions for as long as possible, even after a version has reached its End-Of-Life (EOL) date. This is done partially to make sure we don’t fragment the ecosystem— - we understand that many projects depend on older versions of Node, and we don’t want to risk stranding those projects unless there was a pressing reason to upgrade. | ||
|
||
Over time, maintenance of this policy has become increasingly difficult for a few reasons: | ||
|
||
- Lack of official Node.js 14 macOS ARM64 builds requires us to maintain CI infrastructure workarounds to provide full test coverage. | ||
- `engines` requirements for upstream package dependencies have moved forward, making it increasingly difficult to resolve supply chain security issues with dependency bumps. | ||
|
||
Additionally, newer versions of Node.js have included many improvements that we would like to leverage, such as runtime-native common utilities (e.g. `fs.glob` and `util.parseArgs`) and entire new batteries-included modules (e.g. `node:test`, `node:sqlite`). | ||
|
||
However, we decided that if too much friction arises from the burden of maintaining EOL versions of Node.js (e.g. trouble upgrading dependencies or CI issues), we would perform a blanket upgrade of supported Node.js versions for all our packages to the latest LTS version. | ||
|
||
### Why upgrade now? | ||
|
||
Over the past year, maintainence of various ecosystems packages has become increasingly difficult, with packages breaking on older versions of Node. Additionally, there has been demand from the developer community to support newer features landing in Node, such as ESM. | ||
|
||
In July 2024, Electron’s Ecosystem Working Group decided to upgrade all packages to the earliest Node version where `require()`of synchronous ESM graphs will be supported (see [nodejs/node#51977](https://github.com/nodejs/node/pull/51977) and [nodejs/node#53500](https://github.com/nodejs/node/pull/53500)) at a future point after that version reaches its LTS date. | ||
|
||
We’ve decided to set that update time to January/February 2025. After this upgrade occurs, Node 22 will be the minimum supported version in existing ecosystems packages. | ||
|
||
### What action do I need to take? | ||
|
||
We’ll strive to maintain compatibility as much as possible. However, to ensure the best support, we encourage you to upgrade your apps to Node 22 or higher. | ||
|
||
Note that the Node version running in your project is unrelated to the Node version embedded into your current version of Electron. | ||
|
||
### What's next | ||
|
||
Please feel free to write to us at [[email protected]](mailto:[email protected]) if you have any questions or concerns. You can also find community support in our official [Electron Discord](https://discord.gg/electronjs). |