Repository: facebook/react-native (language: cpp)

Issue:
Unable to create new RN 0.72 project with Node 16
### Description

```sh
% node --version
v16.20.1

%npx --yes react-native@0.72.5 init testcli --template react-native@0.72.5
```

```
...
error @react-native/normalize-colors@0.73.1: The engine "node" is incompatible with this module. Expected version ">=18". Got "16.20.1"
error Found incompatible module.
```




```
% yarn why @react-native/normalize-colors
yarn why v1.22.19
[1/4] 🤔  Why do we have the module "@react-native/normalize-colors"...?
[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
=> Found "@react-native/normalize-colors@0.72.0"
info Reasons this module exists
   - "react-native" depends on it
   - Hoisted from "react-native#@react-native#normalize-colors"
info Disk size without dependencies: "24KB"
info Disk size with unique dependencies: "24KB"
info Disk size with transitive dependencies: "24KB"
info Number of shared dependencies: 0
=> Found "deprecated-react-native-prop-types#@react-native/normalize-colors@0.73.1"
info This module exists because "react-native#deprecated-react-native-prop-types" depends on it.
info Disk size without dependencies: "28KB"
info Disk size with unique dependencies: "28KB"
info Disk size with transitive dependencies: "28KB"
info Number of shared dependencies: 0
✨  Done in 0.18s.
```

Looks like the issue was caused by recent publish of `@react-native/normalize-colors@0.73.1` 
https://github.com/facebook/react-native/tree/main/packages/normalize-color

### React Native Version

0.72.5

### Output of `npx react-native info`

```
info Fetching system and libraries information...
System:
  OS: macOS 13.6
  CPU: (12) arm64 Apple M2 Max
  Memory: 703.91 MB / 32.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 16.20.1
    path: ~/.nvm/versions/node/v16.20.1/bin/node
  Yarn:
    version: 1.22.19
    path: ~/.nvm/versions/node/v16.20.1/bin/yarn
  npm:
    version: 9.7.2
    path: ~/.nvm/versions/node/v16.20.1/bin/npm
  Watchman:
    version: 2023.09.04.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.12.1
    path: /Users/boga/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 22.4
      - iOS 16.4
      - macOS 13.3
      - tvOS 16.4
      - watchOS 9.4
  Android SDK: Not Found
IDEs:
  Android Studio: 2022.2 AI-222.4459.24.2221.10121639
  Xcode:
    version: 14.3.1/14E300c
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 15.0.10
    path: /usr/bin/javac
  Ruby:
    version: 2.7.8
    path: /Users/boga/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.5
    wanted: 0.72.5
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found
```

### Steps to reproduce

```
% node --version
v16.20.1

npx --yes react-native@0.72.5 init testcli --template react-native@0.72.5
````

### Snack, screenshot, or link to a repository

See also https://github.com/facebook/react-native/issues/38298


Discussion / hints:
| :warning: | Missing Reproducible Example |
| --- | --- |
| :information_source: | We could not detect a reproducible example in your issue report. Please provide either: <br /><ul><li>If your bug is UI related: a [Snack](https://snack.expo.dev)</li><li> If your bug is build/update related: use our [Reproducer Template](https://github.com/react-native-community/reproducer-react-native/generate). A reproducer needs to be in a GitHub repository under your username.</li></ul> |
Is it possible for your project to update node version?
If not, you probably could try to add "@react-native/normalize-colors" to the package's "overrides" list with the previous version.
Current version 0.73.1 seems to be pushed yesterday.

But if possible, probably it's cleaner to update node version
@duasfh thanks, I'm personally not affected, this was an issue we saw on our CI, we've updated CI to node 18, so we're fine. But I don't think it was an intended/documented change that rn 0.72.* requires node 18 now.
Considering the latest stable RN includes the following in `package.json`:

```
"engines": {
  "node": ">=16"
}
```

I would kindly ask for a RN side resolution to this. Not sure if this is an acceptable approach, but it comes to mind; publishing `@react-native/normalize-colors` 0.73.0 as 0.73.2, then publishing 0.73.1 as 0.74.0, considering it's a breaking change due to its change of Node minimum version requirements.

For the time being I'm resolving this on my side using:
```
"resolutions": {
  "@react-native/normalize-colors": "0.73.0"
}
```
In my `package.json`, but I would much prefer not having to add this.
Thanks for flagging this @mfazekas, we're currently investigating what's the best resolution for this problem. As you mentioned, setting the `resolutions` for `"@react-native/normalize-colors": "0.73.0"` is a valid workaround as that version doesn't contain the `engines` directive.

Fix patch:
diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json
index 2da8f5d6161726..3c9a4527e4431b 100644
--- a/packages/normalize-color/package.json
+++ b/packages/normalize-color/package.json
@@ -15,8 +15,5 @@
     "normalize-colors",
     "react-native"
   ],
-  "bugs": "https://github.com/facebook/react-native/issues",
-  "engines": {
-    "node": ">=18"
-  }
+  "bugs": "https://github.com/facebook/react-native/issues"
 }


Test patch: