German Moren
Jair Neri
Marcelo Oggero
Conocer la anatomía de un proyecto antes de escribir la primera línea de código marca la diferencia entre avanzar con seguridad y perder horas resolviendo problemas evitables. Aquí se desglosa cómo está organizado un proyecto de Next.js construido con TypeScript, qué dependencias trae listas y cómo cada carpeta cumple un rol específico para conectarse con Contentful.
¿Qué revela el package.json sobre la aplicación?
El punto de partida para inspeccionar cualquier aplicación de JavaScript o Node.js es el archivo package.json [01:15]. Este archivo concentra información esencial:
dev, build y start, cada uno utilizando Next.js en su variación por environment.Este proyecto combina Material UI y Tailwind como sistemas de estilos, lo cual ofrece flexibilidad tanto para componentes prediseñados como para utilidades CSS [02:20].
¿Cómo se configura TypeScript con alias de rutas?
El archivo TSConfig confirma que todo el proyecto está escrito en TypeScript [02:40]. Dentro de sus opciones, destacan los alias de rutas (paths), que simplifican las importaciones:
UI: apunta a las primitivas de interfaz.API: da acceso directo a la capa de datos.Components: agrupa los componentes con lógica de negocio.Estos alias evitan rutas relativas largas y hacen el código más legible.
¿Qué contiene la carpeta API y por qué importa resources.d.ts?
La carpeta API contiene subcarpetas y archivos clave: una carpeta generada, un index, queries de GraphQL, resources y selectores [03:20]. El archivo más relevante es resources.d.ts, un archivo de tipos globales para TypeScript (los archivos .d.ts cumplen exactamente esa función).
Dentro de resources.d.ts se definen los tipos que replican la estructura de Contentful [03:40]:
Si trabajas con tu propio contenido, estos tipos deben coincidir casi uno a uno con tus modelos en Contentful para que TypeScript realmente te ayude a escribir código correcto.
¿Cómo se organizan UI y componentes?
La carpeta UI agrupa todas las primitivas de interfaz, construidas con Tailwind y Material UI [04:30]. Son elementos visuales sin lógica de negocio.
Una capa por encima está Components, donde se combinan elementos de UI con business logic [04:45]. Un ejemplo claro es PlantCollection, que importa componentes de UI y utiliza funcionalidades de Next.js para crear un componente con más responsabilidad.
Todos estos componentes son lo que se conoce como componentes tontos (dumb components): no saben de dónde vienen los datos [05:10]. La tarea será alimentarlos con información proveniente de Contentful.
¿Qué rol cumplen las páginas y archivos especiales de Next.js?
La carpeta Pages es fundamental en cualquier proyecto de Next.js [05:30]. Al inicio contiene:
UI de prueba para verificar los elementos visuales.index, que será la principal._app, que provee la estructura global de la interfaz._document, configurado para hacer server side rendering de Material UI y Tailwind, convirtiendo los estilos en CSS desde el servidor sin dejar esa carga al navegador [05:55].El archivo de configuración next.config.js habilita webpack 5 y un bundle analyzer para inspeccionar el peso del proyecto [06:20].
Al ejecutar yarn dev, el proyecto corre en localhost:3000 y muestra una pantalla de bienvenida con enlaces a la documentación de Next.js, el curso básico de Platzi y la documentación para desarrolladores de Contentful [06:50].
Si algo no funciona como se describe, deja tu pregunta en los comentarios para recibir ayuda y poder continuar sin bloqueos.
German Moren
Jair Neri
Marcelo Oggero
Miguel Hernández Casiano
Andrés Gomez
Jesus Alberto Garzon Castillo
reacosta7383
Rony Porraz Vargas
Daniel Aguirre
Eduardo Fortuna
Camilo José Mezú Mina
Jesús Daniel Medina Cruz
Jonathan 🦑 Alvarez
ProfesorFederico Noya
brandon james grimaldo moscote
Manuel Cañizares
Wilmer Nuñez
Lalo Díaz
Luis Román
Pol Valle
Ulqernesh Karvenae
Humberto Asca
Angelo Rivera
Angelo Rivera
Cesar González Caballero
Sergio Lopez
Miguel Hernández Casiano
Para los que no les compila: Ir a /ui/theme.ts y en la primer linea poner el siguiente codigo
import {createMuiTheme } from '@material-ui/core/styles'
Aunque dice que esta deprecated, tambien probar con
import { createTheme } from '@material-ui/core/styles' import { grey, common, lightGreen } from '@material-ui/core/colors' const muiTheme = createTheme() // It matches tailwind.config.js const fontSerif = `'Cormorant Garamond', ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;` // Build your own theme with the Color Theme tool // @see https://material.io/resources/color/ export const theme = createTheme({
en las primeras 11 lineas.
Gracias bro
Exacto me paso y lo solucioné de esta manera. Gracias👍
Si al correr el comando yarn dev les sale este este error:
.
Error: error:0308010C:digital envelope routines::unsupported
.
Antes de ejecutar yarn dev ejecuten el siguiente comando:
.
export NODE_OPTIONS=--openssl-legacy-provider
.
Y con eso debería funcionar normalmente
Gracias por la solución, me pasó con la ultima version de NodeJS (18.7.0)
companeros a los que sigan estas instrucciones y no les corra solo borren la cache de su navegador , Presiona Ctrl + Shift + Delete (en Windows/Linux) o Cmd + Shift + Delete (en macOS) para abrir la ventana de "Borrar datos de navegación" o "Borrar historial de navegación" y ya corre
Aqui esta el proyecto del profesor en vercel, se ve increible! 😱😱😱
Código desactualizado, perjudica los alumnos nuevos
Que tema y font utiliza el profesor? Se ve increible
Creo que profesor utiliza el tema de tailwind https://marketplace.visualstudio.com/items?itemName=praveenpuglia.tailwind-breeze
A alguien más les da este error?
Initial locale argument was not passed into serverSideTranslations
Hola Jesús!
Si configuraste next-i18next.config.js y next.config.js? https://github.com/jonalvarezz/platzi-plantpedia/blob/main/next-i18next.config.js
También asegúrate de reiniciar el servidor para tomar los nuevos cambios de configuración.
Saludo
tengo el mismo problema.
voy por esta parte y todavía sigue importando los assets jajaj.
es una de las criticas para la plataforma, los cursos son muy largos y en parte se debe a que los profes hablan mucho.
Nadie especifica el tipo de error y su posible solución, solo lo sueltan al garete sin mayores referencias, mejoremos porfa.
Para actualizar el material-ui en la parte del theme
import { createTheme } from '@material-ui/core/styles'
Salía un error al correr el yarn dev ya que el createMuiTheme fue descontinuado y remplazado con createTheme
Error al ejecutar?
Asegúrate de tener instalado nvm (Node Version Manager) en tu sistema. Si no lo tienes instalado, puedes instalarlo utilizando las instrucciones proporcionadas en la página de GitHub de NVM.
Una vez que hayas instalado nvm, puedes usarlo para instalar una versión de Node.js anterior y estable. Por ejemplo, podrías instalar Node.js 16.13.0 ejecutando el siguiente comando en la terminal:
nvm install 16.13.0
Luego puedes usar nvm para cambiar a esta versión de Node.js:
nvm use 16.13.0
Luego, intenta nuevamente ejecutar tu proyecto.
Excelente, muchas gracias funciono
He llegado hasta la lección 6 y con diferentes issues. He leído los comentarios de todoss hasta esta lección y no tengp forma de habilitar la app basado en los pasos que se siguen. He lideado con tratar de resolverlo y varias librerías están desfasadas, obsoletas.
Ejecuté: npm audit fix --force
luego: npm run build
y genera el error:
> platzi-nextjs-plus@0.1.0 build > next build warn - Invalid next.config.js options detected: warn - The root value has an unexpected property, future, which is not in the list of allowed properties (amp, analyticsId, assetPrefix, basePath, cleanDistDir, compiler, compress, configOrigin, crossOrigin, devIndicators, distDir, env, eslint, excludeDefaultMomentLocales, experimental, exportPathMap, generateBuildId, generateEtags, headers, httpAgentOptions, i18n, images, modularizeImports, onDemandEntries, optimizeFonts, output, outputFileTracing, pageExtensions, poweredByHeader, productionBrowserSourceMaps, publicRuntimeConfig, reactStrictMode, redirects, rewrites, sassOptions, serverRuntimeConfig, skipMiddlewareUrlNormalize, skipTrailingSlashRedirect, staticPageGenerationTimeout, swcMinify, target, trailingSlash, transpilePackages, typescript, useFileSystemPublicRoutes, webpack). warn - See more info here: https://nextjs.org/docs/messages/invalid-next-config info - Linting and checking validity of types ..warn - Minimum recommended TypeScript version is v4.3.2, older versions can potentially be incompatible with Next.js. Detected: 4.2.4 info - Linting and checking validity of types .Failed to compile. ./pages/_app.tsx:11:6 Type error: Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes'. 9 | 10 | return ( > 11 | <UIProvider> | ^ 12 | <Component {...pageProps} /> 13 | </UIProvider> 14 | )
Podría alguien ayudarme en este proceso de aprendizaje?
El curso tiene 2 años de antiguedad, me parece. Ahora estamos en Next Js 13 y a cambiado mucho el frameworks y librerias usadas. Aunque todo es migragble con tiempo e investigacion, si creo que deberian dar ese aviso para las personas que empiecen a llegar este curso ya en septiembre 2023.
El curso tiene 2 años de antiguedad, me parece. Ahora estamos en Next Js 13 y a cambiado mucho el frameworks y librerias usadas. Aunque todo es migragble con tiempo e investigacion, si creo que deberian dar ese aviso para las personas que empiecen a llegar este curso ya en septiembre 2023.
Si a alguiien le da error:
Please install @types/react by running:
yarn add --dev @types/react
Usen uno de estos dos comandos:
npm install --save-dev @types/react@18.0.1
yarn add -D @types/react@18.0.1
Dependiendo si usan npm o yarn
No me funciona el comando de contentful
Sería bueno que proporcionaras más contexto como el código o capturas de mensaje de lo que introduces y lo que te sale.
De entrada, podría decir que o bien, no instalaste el CLI o también puede ser que te haya faltado algún comando intermedio que se te haya pasado, o bien un typo