From b8064731507e69a3b89971ffd69e6f6418404877 Mon Sep 17 00:00:00 2001 From: Rob Hogan Date: Sun, 11 Jan 2026 11:13:55 -0800 Subject: [PATCH] Revert: Bump minimum Node.js version to v22.11 (prev LTS) Summary: Reverts https://github.com/facebook/react-native/pull/55038 Dropping v20 (still in LTS) causes friction with Expo's LTS policy, so we're restoring support for v20.19. Changelog: [General][Feature] Revert https://github.com/facebook/react-native/pull/55038 Differential Revision: D90467161 --- .github/actions/setup-node/action.yml | 2 +- .github/workflows/test-all.yml | 2 +- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 2 +- packages/community-cli-plugin/package.json | 2 +- packages/core-cli-utils/package.json | 2 +- packages/debugger-frontend/package.json | 2 +- packages/debugger-shell/package.json | 2 +- packages/dev-middleware/package.json | 2 +- packages/eslint-config-react-native/package.json | 2 +- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 2 +- packages/gradle-plugin/package.json | 2 +- packages/metro-config/package.json | 2 +- packages/new-app-screen/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 2 +- packages/react-native-babel-transformer/package.json | 2 +- packages/react-native-codegen/package.json | 2 +- packages/react-native-compatibility-check/package.json | 2 +- packages/react-native/package.json | 2 +- packages/rn-tester/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- private/helloworld/package.json | 2 +- private/react-native-bots/package.json | 2 +- private/react-native-codegen-typescript-test/package.json | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/actions/setup-node/action.yml b/.github/actions/setup-node/action.yml index abb7e3f740c9f4..7b5aa82470a44e 100644 --- a/.github/actions/setup-node/action.yml +++ b/.github/actions/setup-node/action.yml @@ -4,7 +4,7 @@ inputs: node-version: description: 'The node.js version to use' required: false - default: '22.11.0' + default: '22.14.0' runs: using: "composite" steps: diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index 3c060bb104c430..bd94fde737d1c4 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -479,7 +479,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: ["24", "22.11.0"] + node-version: ["24", "22", "20.19.4"] steps: - name: Checkout uses: actions/checkout@v6 diff --git a/packages/assets/package.json b/packages/assets/package.json index b4dca41b60e6e0..87fa027eefeb48 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -17,7 +17,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "files": [ "path-support.js", diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 7ce7abe5056859..810a849529df82 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -19,7 +19,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "files": [ "index.js" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 89f907d3f87945..3cce16ac07741d 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -55,6 +55,6 @@ } }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/core-cli-utils/package.json b/packages/core-cli-utils/package.json index 8f004e2be45dcf..7403c81ad5baa5 100644 --- a/packages/core-cli-utils/package.json +++ b/packages/core-cli-utils/package.json @@ -37,6 +37,6 @@ "dependencies": {}, "devDependencies": {}, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index 32df3fe319e4e5..6b5108b1e9313b 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -20,6 +20,6 @@ "BUILD_INFO" ], "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/debugger-shell/package.json b/packages/debugger-shell/package.json index 64056647c25fab..cc1fdd72ad8e7a 100644 --- a/packages/debugger-shell/package.json +++ b/packages/debugger-shell/package.json @@ -38,7 +38,7 @@ }, "license": "MIT", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "dependencies": { "cross-spawn": "^7.0.6", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 444e94ff7de675..a02927f44e9cbc 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -51,6 +51,6 @@ "wait-for-expect": "^3.0.2" }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 73e8cd4bbc205f..e43deeabd1cc05 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -16,7 +16,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "main": "index.js", "exports": { diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 48241677d0349b..424995a0200b9c 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -22,6 +22,6 @@ "hermes-eslint": "0.32.0" }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index f78a7cae409c15..9a2f71d18c2e68 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -36,6 +36,6 @@ "hermes-eslint": "0.32.0" }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/gradle-plugin/package.json b/packages/gradle-plugin/package.json index 4a8fba8695c757..ceebf6c894e49c 100644 --- a/packages/gradle-plugin/package.json +++ b/packages/gradle-plugin/package.json @@ -16,7 +16,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "scripts": { "build": "./gradlew build", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index a1f72757e5861b..c37ca68036428e 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -16,7 +16,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "exports": { ".": "./src/index.js", diff --git a/packages/new-app-screen/package.json b/packages/new-app-screen/package.json index 57b66296ac6b63..843ae90a9e19eb 100644 --- a/packages/new-app-screen/package.json +++ b/packages/new-app-screen/package.json @@ -30,6 +30,6 @@ } }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 833985620414c7..8bc4ac8a4e3e44 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -18,7 +18,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "files": [ "console.js", diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index b3e0da543cf2bb..cb3a62d95e3ca7 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -13,7 +13,7 @@ ], "license": "MIT", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "main": "src/index.js", "files": [ diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index bb651c4387ea73..7f59eb34b499f4 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -14,7 +14,7 @@ ], "license": "MIT", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "main": "src/index.js", "files": [ diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 370f9a210891bb..c9e181e6226843 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -18,7 +18,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "scripts": { "build": "yarn clean && node scripts/build.js --verbose", diff --git a/packages/react-native-compatibility-check/package.json b/packages/react-native-compatibility-check/package.json index fbe598969326f7..be52c0e76cc311 100644 --- a/packages/react-native-compatibility-check/package.json +++ b/packages/react-native-compatibility-check/package.json @@ -19,7 +19,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "exports": { ".": "./src/index.js", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 97d0c14e5275e9..6835b9826faba6 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -21,7 +21,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "bin": { "react-native": "cli.js" diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 8723cb1c9eb994..7192bb0996ba28 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -10,7 +10,7 @@ "directory": "packages/rn-tester" }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "scripts": { "start": "react-native start", diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 8f1f2a2b2dd3ec..32c9776ba6f417 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -17,7 +17,7 @@ ], "bugs": "https://github.com/facebook/react-native/issues", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "exports": { ".": { diff --git a/private/helloworld/package.json b/private/helloworld/package.json index d1d5929ef3464a..136b52a3e7a503 100644 --- a/private/helloworld/package.json +++ b/private/helloworld/package.json @@ -33,6 +33,6 @@ "rxjs": "^7.8.1" }, "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" } } diff --git a/private/react-native-bots/package.json b/private/react-native-bots/package.json index 0d9b95db9f8f5f..471c2ef3c24a80 100644 --- a/private/react-native-bots/package.json +++ b/private/react-native-bots/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "devDependencies": { "@rnx-kit/rn-changelog-generator": "^0.4.0", diff --git a/private/react-native-codegen-typescript-test/package.json b/private/react-native-codegen-typescript-test/package.json index c870c1cd34691b..a08ab1b3230c6e 100644 --- a/private/react-native-codegen-typescript-test/package.json +++ b/private/react-native-codegen-typescript-test/package.json @@ -5,7 +5,7 @@ "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", "engines": { - "node": ">= 22.11.0" + "node": ">= 20.19.4" }, "scripts": { "build": "yarn clean && node scripts/build.js --verbose && tsc",