Santiago Velásquez Serna
Daniel Romao
Jefferson Ramos
Configurar un servidor de desarrollo local con esbuild te permite trabajar tu aplicación React con recarga en tiempo real, variables de entorno y bundling optimizado. Aquí aprenderás a crear el archivo de configuración, resolver los errores típicos y dejar tu proyecto listo para desplegar.
¿Cómo crear el archivo esbuild.config.js?
El primer paso es centralizar la configuración del bundler en un archivo dedicado. Crea un nuevo archivo llamado esbuild.config.js en la raíz del proyecto e importa esbuild-serve, la dependencia que instalaste previamente y que habilita el servidor local con observación de cambios.
Dentro de este archivo pasas un objeto de configuración con las propiedades clave del proceso de empaquetado:
index.tsx.true para unir todos los módulos en un solo archivo.true para reducir el tamaño del código.true para facilitar el debugging.dist/bundle.js.js import server from 'esbuild-serve';
server({ entryPoints: ['index.tsx'], bundle: true, minify: true, sourceMap: true, outfile: 'dist/bundle.js', define: { 'process.env.NODE_ENV': '"development"', 'process.env.DEBUG': 'false' } }, { port: 3005, root: '.' });
¿Para qué sirve la propiedad define en esbuild? Te permite inyectar variables de entorno en tiempo de compilación, como
process.env.NODE_ENVoprocess.env.DEBUG, para que tu código sepa si corre en desarrollo o producción.
¿Cómo defines el puerto y la raíz del servidor?
El segundo argumento que recibe esbuild-serve es un objeto con la configuración del servidor. Allí indicas el port, por ejemplo 3005, y la propiedad root apuntando a la estructura raíz del proyecto. Con esto el servidor sabe desde dónde servir los archivos estáticos y en qué puerto escuchar [03:10].
¿Cómo ejecutar esbuild desde el package.json?
Para que el comando npm run start use esta nueva configuración, debes ajustar los scripts. Reemplaza la instrucción anterior de esbuild por una que ejecute el archivo recién creado y active la bandera de observación de cambios.
En el package.json, el script start debe apuntar a node esbuild.config.js con el flag de watch para que detecte modificaciones en tiempo real.
¿Por qué aparece el error sobre módulos en package.json?
Al ejecutar el comando por primera vez es muy probable que veas un error que pide definir el tipo como módulo. Los errores son tus aliados: te dicen exactamente qué falta. La solución es agregar la propiedad type con el valor module en el package.json, lo que habilita la sintaxis de import/export ES Modules que estamos usando.
{ "type": "module" }
¿Qué significa type module en package.json? Le indica a Node.js que interprete los archivos
.jsdel proyecto como módulos ECMAScript en lugar de CommonJS, permitiéndote usarimportyexportnativamente.
¿Cómo evitar errores de tipeo al importar dependencias?
Un detalle fácil de pasar por alto es la coherencia entre el nombre con el que importas una dependencia y el nombre con el que la invocas después. Si haces import server from 'esbuild-serve' pero luego llamas a otra variable, el código fallará aunque Visual Studio Code a veces resuelva la referencia automáticamente.
La recomendación es validar siempre el código antes de correrlo y mantener el mismo identificador en la importación y en la ejecución. Aunque haya un error ortográfico, ambos lados deben coincidir para que funcione sin inconvenientes.
Una vez ajustada la configuración, vuelve a la terminal, ejecuta npm run start y verás cómo el servicio levanta sin problemas. Abre tu navegador en localhost:3005 y tu aplicación React estará corriendo en el entorno de desarrollo local [05:30].
¿Cómo desplegar tu proyecto React con gh-pages?
Con el ambiente de desarrollo funcionando, el siguiente paso es publicar tu trabajo. El reto es subir el proyecto a GitHub Pages usando la dependencia gh-pages, que automatiza la publicación de los archivos compilados.
El flujo es directo y tiene cuatro pasos claros:
gh-pages como dependencia de desarrollo.scripts del package.json.Si ya tienes experiencia con React, este es el momento de modificar componentes, mejorar estilos y mostrar una versión personalizada. Y si estás empezando, cambia textos, prueba cosas y observa cómo el servidor refleja cada modificación al instante.
Déjame en los comentarios el enlace a tu proyecto desplegado para revisarlo. ¿Qué cambios le hiciste a tu primera implementación con esbuild?
Santiago Velásquez Serna
Daniel Romao
Jefferson Ramos
Diego Reyes Cabrera
Marcelo Jorge Bellizia
Rubén Ernesto Aragón Gil
Matias SANCHEZ
Luis Miguel Rojas Franco
Leonardo Fonseca
Kenneth Angulo L
Moises Hernandez
Johanna Marcela Orjuela Flórez
César Augusto Cortés Labrada
Cristian Blandon
Estos cursos que incluyen varias tecnologias explicando un mismo principio se me hacen muy complejos de entender. Siento que lo unico que hago es copiar lo que hace el profesor porque a la final no se explica nada en detalle. Me pasó tambien con el curso de POO donde programamos en 4 lenguajes.
Estoy exactamente en la misma no se explican muchas cosas por ejemplo para qué sirven algunos flags de los scripts, cual es la diferencia entre el script de build y el de build:dev, para que sirve posthtml y por que lo usa, para que se usan algunos paquetes y sus diferencias, etc...
Me falta mucha info es bastante confuso
Meten temas que ya estan en otros cursos y verlos aqui solo nos hace perder tiempo, se pierde la mayoria del tiempo viendo como el profesor desarrolla en otras tecnologias que no tienen nada que ver con los empaquetadores web. Nuestro objetivo principal en este curso es aprender sobre los empaquetadores web no sobre frameworks o librerias de desarrollo. Se excusan que son proyectos que sirven para el portafolio pero para eso mejor se hace un curso o blog especifico en ello, al final tampoco nos van a explicar esas tecnologias a pronfundidad porque para eso estan sus cursos y rutas dedicadas que cada uno de nosotros va tomar cuando lo vea necesario.
Toda esta sección la vi demasiado floja, y ESBuild es la semilla para una nueva generación de bundler. Yo veré este video y de allí le echo un ojo a la docu.
este tipo es una masa como explica
Para hacer deploy: Sube los cambios a github.
1. git add . 2. git commit -m "escribe comentario" 3. git push -u origin main
Después, Escribe esto en la terminal
npm i gh-pages -D
Ve al file de package.json y escribe dentro de los scripts en lo ultimo, esto:
"deploy": "gh-pages -d dist"
Por ultimo, abre la termina y escribe
npm run deploy
Confirma en tu repositorio de github, si todo está bien.
Hola, alguien puede ayudarme con el siguiente error: TypeError: Cannot read properties of undefined (reading 'address') ?
me sucede lo mismo, alguien lo pudo arreglar?
Hola. Yo uso windows con WSL y tuve ese error. Buscando soluciones, vi en uno de los issues de esbuild-serve que tiene que ver con un problema con node v18. Lo que hice fue instalar otra versión de node con nvm. En este caso instalé v19 y ya no tuve problema.
¿Por qué es mejor usar esbuild.serve?
Usar esbuild.serve es como tener un asistente personal que actualiza tu vitrina cada vez que cambias un producto, en lugar de tener que cerrar y abrir la tienda manualmente. Al implementar este método, levantas un servidor de desarrollo local que mantiene tu código en memoria y reacciona a los cambios casi instantáneamente.
A diferencia de compilar el proyecto desde cero con cada guardado (lo cual consume tiempo y recursos de tu máquina), el servidor intercepta las peticiones del navegador y sirve los archivos empaquetados al vuelo. Esto significa que tu flujo de trabajo se vuelve increíblemente rápido. Solo necesitas definir el puerto (como el 3005) y el directorio raíz, y la herramienta se encargará de inyectar las actualizaciones en tu localhost. Es la forma más eficiente de ver cómo tu aplicación cobra vida en tiempo real sin fricciones.
El servidor de desarrollo nos da una localhost y una ip para ver en la red local para poder visualizar nuestro proyecto en otros dispositivos, increíble.
Para subir el proyecto a github se debe ignorar los archivos esbuild.js y esbuild.js.map que quedaron en la carpeta public?
Es mejor... esbuild.js se usa para crear el bundle, y esbuild.js.map se usa para debugging... Como lo que vas a publicar es el bundle ya creado, no necesitarías el esbuild.js... Y generalmente el debugging se hace con el servidor de desarrollo y no con la app publicada, por lo que no necesitarías el esbuild.js.map.