SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
require.context
Un require que funciona con regex
👋 Hey! Soy Richard
@sparragus
Puertorriqueño, web engineer,
hago podcasts
Preámbulo
(tl;dr: Esta plática realmente no de es folder
structuring)
@sparragus
•src/
•pages/
•components/
•index.js
Pero por si tienen curiosidad:
require.context
Un require que funciona con regex
Only
Nada que ver
con el
Context API de React
@sparragus
src 
├── app.js
└── pages
├── home
│ ├── index.css
│   └── index.js
├── about
│ ├── index.css
│   └── index.js
└── contact
├── index.css
  └── index.js
@sparragus
const Home = require("./pages/home");
const About = require("./pages/about");
const Contact = require("./pages/contact");
<Router>
<Route path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</Router>
@sparragus
function Home() {
return (
<div>
<h1>Hey! Soy Richard</h1>
<nav>
<ul>
<li><Link to="/about">About</Link></li>
<li><Link to="/contact">Contact</Link></li>
</ul>
</nav>
</div>
);
}
module.exports = Home;
@sparragus
• Input <= Expresión regular
• Output => Context
• Una función que nos permite hacer require solamente a los
archivos que hacen “match” con la expresión regular
Un require que funciona con regex
require.context
@sparragus
const context = require.context(
"./pages", // Un punto de partida del contexto
true, // Quiero buscar en los subdirs
/index.js$/ // El regex para encontrar files
);
const Home = context(‘./home/index.js’);
@sparragus
const context = require.context("./pages", true, /index.js$/);
src 
├── app.js <--------------- Estamos aquí
└── pages <--------------- El directorio que especificamos
├── home
│ ├── index.css <----- ❌
│   └── index.js <----- ✅ (Match con el regex)
├── about
│ ├── index.css <----- ❌
│   └── index.js <----- ✅
└── contact
├── index.css <----- ❌
  └── index.js <----- ✅
@sparragus
const styles = context('./home/index.css');
@sparragus
const styles = context('./home/index.css');
💥Error: Cannot find module ‘./home/index.css’
@sparragus
const context = require.context(
"./pages", // A directory
true, // Use subdirectories
/index.js$/ // A regex for matching files
);
const Home = context(‘./home/index.js’);
const About = context(‘./about/index.js’);
const Contact = context(‘./contact/index.js’);
<Router>
<Route path="/" component={Home} />
...
</Router>
@sparragus
🤔
@sparragus
• Input <= Expresión regular
• Output => Context
• Una función que nos permite hacer require solamente a los
archivos que hacen “match” con la expresión regular
• {

keys()

}
Un require que funciona con regex
require.context
@sparragus
🤔🤔🤔
@sparragus
✌
@sparragus
const context = require.context("./pages", true, /index.js$/);
const Home = context('./Home');
const filenames = context.keys();
console.log(filenames);
⮑ [ "./home/index.js", "./about/index.js", "./contact/index.js" ]
Función
Objeto
@sparragus
function getPathFromFilename (filename) { ... }
const context = require.context(...);
const filenames = context.keys();
const routes = filenames.map(filename => ({
path: getPathFromFilename(filename),
component: context(filename)
});
@sparragus
const filenames = context.keys();
const routes = [{...}, {...}, {...}];
<Router>
{routes.map(route =>
<Route path={route.path} component={route.component} />
)}
</Router>
@sparragus
•src/
•pages/
•components/
•index.js
Pero por si tienen curiosidad:
Ver para creer
(Demos)
👋 Hey! Soy Richard
@sparragus
Puertorriqueño, web engineer,
hago podcasts

Más contenido relacionado

Similar a require.context: Un require dinámico con expresiones regulares

Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityFe
 
"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguez"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguezwebcat
 
Desarrollo web inteligente
Desarrollo web inteligenteDesarrollo web inteligente
Desarrollo web inteligenteMax Kraszewski
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Varnish para meros mortales
Varnish para meros mortalesVarnish para meros mortales
Varnish para meros mortalesMartín .
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Airespeterpunk
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 

Similar a require.context: Un require dinámico con expresiones regulares (20)

Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivity
 
"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguez"Meta datos & Google Rich Snippets" por @iplarodriguez
"Meta datos & Google Rich Snippets" por @iplarodriguez
 
6.angular js
6.angular js6.angular js
6.angular js
 
Desarrollo web inteligente
Desarrollo web inteligenteDesarrollo web inteligente
Desarrollo web inteligente
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
Varnish para meros mortales
Varnish para meros mortalesVarnish para meros mortales
Varnish para meros mortales
 
Web2 Quiensomos
Web2 QuiensomosWeb2 Quiensomos
Web2 Quiensomos
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
 
Assetic PHPmvd
Assetic PHPmvdAssetic PHPmvd
Assetic PHPmvd
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Odd2015 scraping
Odd2015 scrapingOdd2015 scraping
Odd2015 scraping
 
Prueba
PruebaPrueba
Prueba
 
Creación de plugins con Grails
Creación de plugins con GrailsCreación de plugins con Grails
Creación de plugins con Grails
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
 

Más de Richard Kaufman

Programación de Bots para Slack
Programación de Bots para SlackProgramación de Bots para Slack
Programación de Bots para SlackRichard Kaufman
 
Digital Invaders - Introducción al Prototipaje
Digital Invaders - Introducción al PrototipajeDigital Invaders - Introducción al Prototipaje
Digital Invaders - Introducción al PrototipajeRichard Kaufman
 
Digital Invaders - Introducción a Programación
Digital Invaders - Introducción a ProgramaciónDigital Invaders - Introducción a Programación
Digital Invaders - Introducción a ProgramaciónRichard Kaufman
 
Nodebots Mexico - Tacómetro Twittero
Nodebots Mexico - Tacómetro TwitteroNodebots Mexico - Tacómetro Twittero
Nodebots Mexico - Tacómetro TwitteroRichard Kaufman
 

Más de Richard Kaufman (6)

Internacionalizacion
InternacionalizacionInternacionalizacion
Internacionalizacion
 
Programación de Bots para Slack
Programación de Bots para SlackProgramación de Bots para Slack
Programación de Bots para Slack
 
FUTURE Mariachi
FUTURE MariachiFUTURE Mariachi
FUTURE Mariachi
 
Digital Invaders - Introducción al Prototipaje
Digital Invaders - Introducción al PrototipajeDigital Invaders - Introducción al Prototipaje
Digital Invaders - Introducción al Prototipaje
 
Digital Invaders - Introducción a Programación
Digital Invaders - Introducción a ProgramaciónDigital Invaders - Introducción a Programación
Digital Invaders - Introducción a Programación
 
Nodebots Mexico - Tacómetro Twittero
Nodebots Mexico - Tacómetro TwitteroNodebots Mexico - Tacómetro Twittero
Nodebots Mexico - Tacómetro Twittero
 

Último

Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.ariannytrading
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 

Último (20)

Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 

require.context: Un require dinámico con expresiones regulares

  • 1. require.context Un require que funciona con regex
  • 2. 👋 Hey! Soy Richard @sparragus Puertorriqueño, web engineer, hago podcasts
  • 3. Preámbulo (tl;dr: Esta plática realmente no de es folder structuring)
  • 4.
  • 5.
  • 6.
  • 8. require.context Un require que funciona con regex
  • 10. Nada que ver con el Context API de React
  • 11. @sparragus src  ├── app.js └── pages ├── home │ ├── index.css │   └── index.js ├── about │ ├── index.css │   └── index.js └── contact ├── index.css   └── index.js
  • 12. @sparragus const Home = require("./pages/home"); const About = require("./pages/about"); const Contact = require("./pages/contact"); <Router> <Route path="/" component={Home} /> <Route path="/about" component={About} /> <Route path="/contact" component={Contact} /> </Router>
  • 13. @sparragus function Home() { return ( <div> <h1>Hey! Soy Richard</h1> <nav> <ul> <li><Link to="/about">About</Link></li> <li><Link to="/contact">Contact</Link></li> </ul> </nav> </div> ); } module.exports = Home;
  • 14. @sparragus • Input <= Expresión regular • Output => Context • Una función que nos permite hacer require solamente a los archivos que hacen “match” con la expresión regular Un require que funciona con regex require.context
  • 15. @sparragus const context = require.context( "./pages", // Un punto de partida del contexto true, // Quiero buscar en los subdirs /index.js$/ // El regex para encontrar files ); const Home = context(‘./home/index.js’);
  • 16. @sparragus const context = require.context("./pages", true, /index.js$/); src  ├── app.js <--------------- Estamos aquí └── pages <--------------- El directorio que especificamos ├── home │ ├── index.css <----- ❌ │   └── index.js <----- ✅ (Match con el regex) ├── about │ ├── index.css <----- ❌ │   └── index.js <----- ✅ └── contact ├── index.css <----- ❌   └── index.js <----- ✅
  • 17. @sparragus const styles = context('./home/index.css');
  • 18. @sparragus const styles = context('./home/index.css'); 💥Error: Cannot find module ‘./home/index.css’
  • 19. @sparragus const context = require.context( "./pages", // A directory true, // Use subdirectories /index.js$/ // A regex for matching files ); const Home = context(‘./home/index.js’); const About = context(‘./about/index.js’); const Contact = context(‘./contact/index.js’); <Router> <Route path="/" component={Home} /> ... </Router>
  • 21. @sparragus • Input <= Expresión regular • Output => Context • Una función que nos permite hacer require solamente a los archivos que hacen “match” con la expresión regular • {
 keys()
 } Un require que funciona con regex require.context
  • 24. @sparragus const context = require.context("./pages", true, /index.js$/); const Home = context('./Home'); const filenames = context.keys(); console.log(filenames); ⮑ [ "./home/index.js", "./about/index.js", "./contact/index.js" ] Función Objeto
  • 25. @sparragus function getPathFromFilename (filename) { ... } const context = require.context(...); const filenames = context.keys(); const routes = filenames.map(filename => ({ path: getPathFromFilename(filename), component: context(filename) });
  • 26. @sparragus const filenames = context.keys(); const routes = [{...}, {...}, {...}]; <Router> {routes.map(route => <Route path={route.path} component={route.component} /> )} </Router>
  • 29. 👋 Hey! Soy Richard @sparragus Puertorriqueño, web engineer, hago podcasts