Harden the host's resolution heuristics: addon detection and Xcode workspace lookup
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- cli
Línea de trabajo
Comienza en packages/host/src/node/path-utils.ts, en isNodeApiModule, PLATFORM_EXTENSIONS y el TODO obsoleto; después inspecciona findXcodeWorkspace en packages/host/src/node/cli/xcode-helpers.ts. Confirma cómo funcionan el fast path y la búsqueda descendente actual. Se considera terminado cuando la detección de addons requiere una extensión específica de la plataforma, se elimina el TODO obsoleto y la búsqueda del workspace recorre los directorios hacia arriba desde directorios anidados antes de fallar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Two places in the host CLI where a shortcut stands in for a proper check. Both fail quietly or unhelpfully rather than loudly.
isNodeApiModule treats any .node file as an addon
The HACK short-circuits: if <path>.node exists, it returns true without ever checking that it is one of ours. But PLATFORM_EXTENSIONS is specific — .android.node and .apple.node — and a plain .node file is exactly what a Node.js-targeted addon (or a leftover node-gyp build output in build/Release/) looks like. Accepting it means auto-linking picks up something it cannot load, and the failure surfaces later and further away, at runtime on device.
The accompanying TODO on the doc comment asks for the same thing: check for a specific platform extension. Worth doing together, since the fast path exists to avoid the batch directory scan and any fix needs to preserve that.
While in this file: the TODO: Change to .apple.node above PLATFORMS (line 11) is stale — PLATFORM_EXTENSIONS.apple is already ".apple.node" two lines below. It can just be deleted.
findXcodeWorkspace gives up instead of walking upwards
The search descends into ios/macos from the starting directory and otherwise throws. Running the command from anywhere below the app root — src/, or a package directory in a monorepo, which is the normal place to be standing — fails with No Xcode workspace found in '<cwd>' even though the workspace is one level up. Walking up to the repository/package root before giving up (bounded, e.g. stopping at a .git or the filesystem root) would match what every other RN tool does.
- Lenguaje dominante
- TypeScript
- Estrellas
- 188
- Forks
- 10
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 3
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de callstackincubator/react-native-node-api
-
Android 🤖
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
-
Sanity check of Hermes source directory via environment variable, when building Android projects AbiertoAndroid 🤖 good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
callstackincubator/react-native-node-api#163 · 1 comentario ·
-
enhancement good first issue gyp-to-cmake
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
callstackincubator/react-native-node-api#161 · 3 comentarios · 1 reacción ·
-
enhancement Host 🏡
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Automatable good first issue
Dificultad 3/5 1-2 días Aptitud para principiantes 15/100
callstackincubator/react-native-node-api#424 · 1 comentario ·
Todos los issues de callstackincubator/react-native-node-api
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
bug v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
modelcontextprotocol/inspector#2458 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
railmapgen/rmp-gallery#4068 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
carbon-design-system/ibm-products#9907 ·