[Pkg-javascript-devel] Nodejs 20.19.4 for react-native
Jérémy Lal
kapouer at melix.org
Thu Nov 20 15:02:08 GMT 2025
Le jeu. 20 nov. 2025 à 15:58, <toni.beier at hrz.tu-chemnitz.de> a écrit :
> Dear Jérémy,
> Our app now uses React Native version 0.81.5 and Expo version 54.0.25.
>
> When installing the dependencies with yarn, two error messages are
> displayed:
>
> error @react-native/dev-middleware at 0.81.5: The engine ‘node’ is
> incompatible with this module. Expected version ‘>= 20.19.4’. Got ‘20.19.2’
> and
> error metro at 0.83.2: The engine ‘node’ is incompatible with this module.
> Expected version ‘>=20.19.4’. Got ‘20.19.2’
>
> npm install also displaying warnings:
>
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'react-native at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-babel-transformer at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-cache at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-cache-key at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-config at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-core at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-file-map at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-resolver at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-runtime at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-source-map at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-transform-plugins at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-transform-worker at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/babel-preset at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/babel-plugin-codegen at 0.81.5
> ',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/codegen at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-symbolicate at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'ob1 at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: 'metro-minify-terser at 0.83.2',
> npm WARN EBADENGINE required: { node: '>=20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/assets-registry at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/community-cli-plugin at 0.81.5
> ',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/gradle-plugin at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/js-polyfills at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/virtualized-lists at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/dev-middleware at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
> npm WARN EBADENGINE Unsupported engine {
> npm WARN EBADENGINE package: '@react-native/debugger-frontend at 0.81.5',
> npm WARN EBADENGINE required: { node: '>= 20.19.4' },
> npm WARN EBADENGINE current: { node: 'v20.19.2', npm: '9.2.0' }
> npm WARN EBADENGINE }
>
> I was able to trace this back to the following commits:
> *
>
> https://github.com/facebook/react-native/commit/e247be793c70a374955d798d8cbbc6eba58080ec
> *
>
> https://github.com/facebook/metro/commit/7052e5407e6ed62251767f2a5eafbe9837323bb9
>
> As far as I understand, the React Native team has decided to support
> Nodejs 20 again and arbitrarily set version 20.19.4 as the minimum version.
There are not many differences between 20.19.2 and 20.19.4.
I'd be surprised react-native relies on them.
They just choose tip of the 20.x branch for official support.
Use
yarn --ignore-engines
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20251120/2cfeda6c/attachment.htm>
More information about the Pkg-javascript-devel
mailing list