React Native

Monorepo y compartición de código

Yarn workspaces, nx, shared packages, React Native Web, estrategias de reutilización de código

18 preguntas de entrevista·
Senior
1

¿Qué es un monorepo en el contexto del desarrollo con React Native?

Respuesta

Un monorepo es una arquitectura donde múltiples proyectos o packages se almacenan en un solo repositorio Git. En el contexto de React Native, esto permite compartir código entre una app móvil, una app web (React Native Web) y packages utilitarios. Las ventajas incluyen gestión centralizada de dependencias, refactorizaciones atómicas y consistencia del código entre plataformas.

2

¿Cuál es el rol principal de los Yarn workspaces en un monorepo React Native?

Respuesta

Los Yarn workspaces permiten gestionar múltiples packages en un solo repositorio con un único node_modules hoisted en la raíz. Esto reduce la duplicación de dependencias, permite el symlinking automático entre packages locales y facilita los scripts globales. En un monorepo React Native, esto permite vincular automáticamente los packages compartidos con las aplicaciones móvil y web.

3

¿Cómo configurar un monorepo básico con Yarn workspaces para React Native?

Respuesta

La configuración básica requiere un package.json en la raíz con el campo workspaces que define los patrones de los packages. Típicamente, se usa packages/* o apps/* para las aplicaciones y packages/* para las librerías compartidas. El campo private debe estar en true para evitar la publicación accidental del package raíz. Metro bundler también requiere configuración para resolver los symlinks correctamente.

4

¿Qué problema puede causar el hoisting de dependencias en un monorepo React Native?

5

¿Qué es Nx y qué ventaja principal aporta respecto a los Yarn workspaces por sí solos?

+15 preguntas de entrevista

Otros temas de entrevista React Native

Domina React Native para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis