← Volver al listado de tecnologías
Capítulo 9: Integración con Re.Pack
Integración con Re.Pack
Rozenite es compatible con Re.Pack y workflows de Module Federation.
Compatibilidad
Rozenite funciona con:
- Metro (bundler por defecto)
- Re.Pack (Webpack para React Native)
- Module Federation (micro-frontends)
Configuración con Re.Pack
// webpack.config.js
const { getDefaultConfig } = require('@callstack/repack');
module.exports = (env) => {
const config = getDefaultConfig(env);
return {
...config,
resolve: {
...config.resolve,
alias: {
...config.resolve.alias,
// Rozenite funciona sin alias especiales
},
},
};
};
Module Federation Setup
// Host App
import { RozeniteProvider } from '@rozenite/core';
import { NetworkPlugin } from '@rozenite/network';
function HostApp() {
return (
<RozeniteProvider plugins={[NetworkPlugin]}>
<Suspense fallback={<Loading />}>
<RemoteModule />
</Suspense>
</RozeniteProvider>
);
}
// Remote Module
// Rozenite captura automáticamente las peticiones
// del módulo remoto
function RemoteModule() {
useEffect(() => {
fetch('/api/remote-data'); // Capturado por Network
}, []);
return <View>...</View>;
}
Debugging de Módulos Remotos
Rozenite captura actividad de todos los módulos:
┌─────────────────────────────────────┐
│ Network │
├─────────────────────────────────────┤
│ [Host] GET /api/user 200 │
│ [Remote:Cart] POST /api/cart 201 │
│ [Remote:Auth] GET /api/token 200 │
└─────────────────────────────────────┘
Configuración Avanzada
const config = {
// Etiquetar requests por módulo
tagByModule: true,
// Filtrar por módulo
moduleFilter: ['host', 'cart'],
};
Ejercicio Práctico
Objetivo
Configurar Rozenite en un proyecto con Re.Pack.
Pasos
- Crea proyecto con Re.Pack (o usa existente)
- Instala Rozenite normalmente
- Configura el Provider
- Verifica que DevTools funciona con webpack
Ver solución
# Proyecto existente con Re.Pack
npm install @rozenite/core @rozenite/network
// App.tsx
import { RozeniteProvider } from '@rozenite/core';
import { NetworkPlugin } from '@rozenite/network';
export default function App() {
return (
<RozeniteProvider
plugins={[NetworkPlugin]}
config={{
enabled: __DEV__,
}}
>
<MainApp />
</RozeniteProvider>
);
}
# Ejecutar con Re.Pack
npx react-native webpack-start
Criterios de Éxito
- Re.Pack configurado
- Rozenite funciona con webpack
- DevTools captura requests