Estructura Clase
En esta sesión vamos a detallar los pasos que hemos seguido en clase para preparar el proyecto con la estructura final que hemos usado para nuestro ejemplo. Los pasos son los siguientes
- Creamos el proyecto con Vite
mkdir workshop \
&& cd workshop \
&& npm create vite@latest personal-portfolio -- --template react-ts
- Instalamos las dependencias del proyecto mediante npm
cd personal-portfolio \
&& npm install react-router@6.8.2 react-router-dom@6.8.2 i18next@19.9.2 i18next-browser-languagedetector@6.0.1 react-i18next@12.2.0 jwt-decode@3.1.2 react-helmet-async@1.3.0 lottie-react@2.3.1 styled-components@5.2.1
- Instalación las dependencias de desarrollo
npm install --save-dev @types/react-router-dom@5.1.7 @types/styled-components@5.1.7 @types/node@18.14.6
- Vamos ahora a instalar las dependencias para el linter, veremos este concepto en la última sesión de CI/CD, pero dejaremos instalado el linter desde un inicio.
npm install --save-dev eslint prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-airbnb-typescript eslint-config-prettier eslint-plugin-prettier eslint-plugin-import eslint-plugin-react
Y por último añadiremos el plugin the airbnb y todas sus dependencias mediante la herramienta install-peerdeps.
npx install-peerdeps --dev eslint-config-airbnb
A partir de ahora, vamos a aplicar los cambios para añadir la estructura del proyecto.
Reemplazamos los ficheros de la carpeta public.
Añadimos la carpeta
modelscon los modelos de la aplicación.Modificamos el archivo
main.tsxemain.csspara añadir la lógica global y los estilos globales.Añadir la carpeta de
stylespara añadir los estilos.Modificamos la estructura de
app.tsx, movemos a la carpetacomponentsy añadimos la navegación.
Clase -> Aquí vemos como aplicar Styled components en el Landing page y como funciona Lottie.
Añadimos la carpeta
constantcon las constantes del proyecto.Añadimos la carpeta
utilscon la lógica de autenticación y los data mocks.Añadir el archivo
.envpara las variables de entorno.Añadimos la carpeta
contextcon los contextos de autenticación y aplicación.Añadimos la carpeta
hookscon la lógica de los hooks.Añadimos la carpeta
localesy el ficheroi18n.tspara la internacionalización.Dentro de la carpeta
componentsimplementamos el resto de componentes.