¿Cómo actualizar un proyecto a Webpack 5 y React 17?
Actualizar tu proyecto a las últimas versiones de herramientas y bibliotecas es crucial para mantenerlo eficiente y seguro. En este caso, vamos a explorar el proceso de actualización de un proyecto utilizando Webpack 5 y React 17 para optimizar su rendimiento y características. Platiquemos sobre el proyecto Platzi Store, con el que llevaremos a cabo la actualización.
¿Qué es Platzi Store y cómo configurarlo?
Platzi Store es un proyecto utilizado en varios cursos para aprender sobre pruebas unitarias, herramientas como Webpack, y otros conceptos avanzados de desarrollo. Lo primero es acceder a este proyecto mediante un clon o fork desde su repositorio, que puedes encontrar en la sección de enlaces del curso.
Clonar el proyecto: Utiliza el comando git clone URL donde URL es la dirección del repositorio de Platzi Store.
Acceder a la carpeta del proyecto: Abre el terminal y navega a la carpeta con cd platzi-store.
Abrir el proyecto en un editor: Puedes utilizar Visual Studio Code o cualquier editor de tu preferencia con code . para abrir el proyecto.
¿Cómo revisar y entender la configuración actual del proyecto?
Antes de hacer cualquier actualización, es esencial entender cómo está configurado actualmente el proyecto:
Archivos importantes: Verifica el README.md para instrucciones básicas y el archivo package.json para entender las dependencias y scripts que se ejecutan.
Configuraciones de Webpack: Este archivo define puntos de entrada y salida, extensiones a trabajar (como .js y .jsx), loaders y plugins que optimizan y procesan el proyecto.
¿Qué hay que actualizar en Webpack y React?
A continuación, verás qué dependencias necesitas actualizar para aprovechar las características más recientes:
Webpack: Actualizar a Webpack 5 es esencial, junto con su CLI y varios plugins.
React: Mover a React 17 y sus bibliotecas asociadas, como react-dom y react-redux, también es primordial.
¿Cómo realizar la actualización de Webpack y sus componentes?
Para asegurarte de que todo está actualizado a las versiones más recientes, ejecuta los siguientes comandos en la terminal:
Una vez actualizadas las dependencias, asegúrate de configurar Webpack correctamente para el desarrollo local. En Webpack 5, el uso de webpack-dev-server ha cambiado, ahora simplemente deberías usar webpack serve.
¿Cómo revisar que todo funcione correctamente?
Finalmente, ejecuta el proyecto para verificar que todo esté en orden:
npm run start
Este comando compilará tu proyecto y abrirá el navegador en el puerto configurado para el desarrollo local, permitiéndote ver y probar tu aplicación actualizada. Es un buen momento para realizar pruebas exhaustivas y verificar que no haya errores en las rutas o sistemas de estado de Redux integrados.
Con el proyecto ahora actualizado y corriendo adecuadamente, estamos listos para optimizar aún más y seguir explorando mejores prácticas en el desarrollo moderno. ¡Continúa aprendiendo y mejorando tus habilidades!
Migración y Optimización de Proyectos con Webpack 5
Migración y Optimización de Proyectos con Webpack 5
Recursos
Resumen
¿Cómo actualizar un proyecto a Webpack 5 y React 17?
Actualizar tu proyecto a las últimas versiones de herramientas y bibliotecas es crucial para mantenerlo eficiente y seguro. En este caso, vamos a explorar el proceso de actualización de un proyecto utilizando Webpack 5 y React 17 para optimizar su rendimiento y características. Platiquemos sobre el proyecto Platzi Store, con el que llevaremos a cabo la actualización.
¿Qué es Platzi Store y cómo configurarlo?
Platzi Store es un proyecto utilizado en varios cursos para aprender sobre pruebas unitarias, herramientas como Webpack, y otros conceptos avanzados de desarrollo. Lo primero es acceder a este proyecto mediante un clon o fork desde su repositorio, que puedes encontrar en la sección de enlaces del curso.
Clonar el proyecto: Utiliza el comando git clone URL donde URL es la dirección del repositorio de Platzi Store.
Acceder a la carpeta del proyecto: Abre el terminal y navega a la carpeta con cd platzi-store.
Abrir el proyecto en un editor: Puedes utilizar Visual Studio Code o cualquier editor de tu preferencia con code . para abrir el proyecto.
¿Cómo revisar y entender la configuración actual del proyecto?
Antes de hacer cualquier actualización, es esencial entender cómo está configurado actualmente el proyecto:
Archivos importantes: Verifica el README.md para instrucciones básicas y el archivo package.json para entender las dependencias y scripts que se ejecutan.
Configuraciones de Webpack: Este archivo define puntos de entrada y salida, extensiones a trabajar (como .js y .jsx), loaders y plugins que optimizan y procesan el proyecto.
¿Qué hay que actualizar en Webpack y React?
A continuación, verás qué dependencias necesitas actualizar para aprovechar las características más recientes:
Webpack: Actualizar a Webpack 5 es esencial, junto con su CLI y varios plugins.
React: Mover a React 17 y sus bibliotecas asociadas, como react-dom y react-redux, también es primordial.
¿Cómo realizar la actualización de Webpack y sus componentes?
Para asegurarte de que todo está actualizado a las versiones más recientes, ejecuta los siguientes comandos en la terminal:
Una vez actualizadas las dependencias, asegúrate de configurar Webpack correctamente para el desarrollo local. En Webpack 5, el uso de webpack-dev-server ha cambiado, ahora simplemente deberías usar webpack serve.
¿Cómo revisar que todo funcione correctamente?
Finalmente, ejecuta el proyecto para verificar que todo esté en orden:
npm run start
Este comando compilará tu proyecto y abrirá el navegador en el puerto configurado para el desarrollo local, permitiéndote ver y probar tu aplicación actualizada. Es un buen momento para realizar pruebas exhaustivas y verificar que no haya errores en las rutas o sistemas de estado de Redux integrados.
Con el proyecto ahora actualizado y corriendo adecuadamente, estamos listos para optimizar aún más y seguir explorando mejores prácticas en el desarrollo moderno. ¡Continúa aprendiendo y mejorando tus habilidades!
Como sabemos hemos actualizado la mayoria de nuestras dependencias en el proyecto de Platzi Store, lo cual conlleva a analizar si se han realizado ciertos cambios.
El cambio mas notorio es que Switch ya no es un modulo exportado de react-router-dom y ha sido remplazado por Routes en la nueva version
Ademas de unos cambios pequeños a la hora de definir las rutas de la app
Cambiando de esto:
<Route exact path='/' component={Home} />
A esto :
<Route exact path='/' element={<Home />} />
y para definir el default de la ruta en caso del notFount usaremos el path *
Para esta fecha donde estamos usando React 18, React Router Dom 6, React-redux 8, Webpack 5, etc...
Para poder avanzar en esta clase, y recopilando las soluciones que leí de los otros compañeros, este es el paso a paso para lograr que el proyecto funcione.
Primero cambiar la forma de importar, y llamar dependencias en el index.js:
import ReactDOM from 'react-dom/client';
import { legacy_createStore as createStore } from 'redux';
Instalar la última versión del Webpack dev server:
npm i webpack-dev-server@latest
Cambiar el Switch por Routes en el archivo de App.jsx donde se listan las rutas de la aplicación
Para la nueva version de React (18 al crear este comentario) se debe actualizar el index.js. Porque con react 18 se cambio la forma de iniciar el root para el React app
Aun no entiendo bien React pero a la fecha de hoy no me funcionó y viendo los aportes entiendo que algo se actualizó. Lo que se encarga de las rutas cambió por esa razón debe modificar en App.jsx Switch por Routes:
import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Home from '../containers/Home';
import Checkout from '../containers/Checkout';
import Layout from '../components/Layout';
import NotFound from '../containers/NotFound';
const App = () => (
<BrowserRouter>
<Layout>
<Routes>
<Route exact path='/' element={<Home />} />
<Route exact path='/checkout' element={<Checkout />} />
<Route path='*' element={<NotFound />} />
</Routes>
</Layout>
</BrowserRouter>
);
export default App;
1.- En Github le haces Fork ( clickeas el icon del fork)
2.- git clone https://github.com/gndx/platzi-store ó la url de tu fork.
Pd: No hace falta hacer git reset "id-del-commit", porque el profesor en el branch master esta con el commit de esta clase. y hay otro branch con los commit de clases posteriores llamado clase/10
Pero por si tienen algún problema:
3.- Para que regresen en el tiempo a el commit de esta clase:
Se generó al compilar el proyecto debido a que no se instauro la configuración de babel para soportar jsx. Lo solucioné actualizando todo lo relacionado a babel y creando el fichero de configuración de .babelrc