Para comenzar a trabajar con el proyecto que optimizaremos, lo primero que debemos hacer es clonar el repositorio y garantizar que todas las dependencias se instalen correctamente. A continuación, encontrarás una serie de pasos para lograrlo en tu propio entorno de desarrollo.
Clonación del repositorio:
Abre tu terminal y navega a una carpeta donde deseas clonar el proyecto. En este ejemplo, el nombre de la carpeta es "Platzi".
Accede al repositorio del proyecto en GitHub, y utiliza el botón "Clone or download" para copiar la URL.
En tu terminal, ejecuta el siguiente comando para clonar el repositorio:
git clone <URL del repositorio>
Este paso creará una nueva carpeta con el nombre del proyecto.
Instalación de dependencias:
Ingresa a la carpeta del proyecto clonado.
Ejecuta el siguiente comando para instalar las dependencias necesarias:
npminstall
Mientras las dependencias se instalan, puedes explorar la estructura del proyecto abriéndolo en Visual Studio Code.
¿Cómo está estructurado el proyecto?
El proyecto que tenemos a mano es una aplicación relativamente típica que utiliza diversas herramientas y librerías para su funcionamiento óptimo. Veamos algunos de los aspectos más relevantes.
Estructura de archivos:
La aplicación cuenta con un archivo index.html que carga archivos de JavaScript e imágenes.
El archivo JavaScript principal, index.js, se encuentra en la carpeta src y es responsable de interactuar con una API para obtener y presentar información relevante sobre animes populares.
Generación de archivos de bundle:
La magia del proyecto se encuentra en cómo Webpack genera los archivos de bundle. Webpack toma el archivo fuente (source.index.js) y genera un archivo optimizado para el navegador.
Uso de Hyperscript:
El proyecto utiliza una librería llamada Hyperscript que simplifica la creación de elementos HTML con JavaScript. Esto es especialmente útil para aquellos familiarizados con frameworks como React.
Conexión con una API:
Nos conectamos a una API de "kitsub.io" para renderizar elementos de anime en el cliente. Esto nos permite mostrar información actualizada sobre tendencias de anime.
¿Cómo ejecutar el proyecto?
Una vez que todas las dependencias estén instaladas, puedes ejecutar el proyecto localmente para ver cómo funciona. Aquí te explicamos cómo hacerlo.
Asegúrate de que todas las dependencias estén correctamente instaladas y no hay errores.
Ejecuta el siguiente comando para iniciar el servidor Webpack:
npm run start
El comando anterior iniciará un servidor en el puerto localhost:8080.
Abre tu navegador y navega a la dirección http://localhost:8080 para ver el proyecto en acción.
La página mostrará información sobre animes de moda, los de mejor calificación y los más populares, coherente con los datos obtenidos de la API mencionada.
¿Cómo generar un reporte de Lighthouse?
Antes de comenzar con las optimizaciones es fundamental entender el estado actual de la aplicación. Para ello, podemos generar un informe de Lighthouse.
Ejecuta Lighthouse en tu navegador para obtener un diagnóstico completo del rendimiento, accesibilidad y mejores prácticas del proyecto.
Con esta información inicial, podremos identificar las áreas más débiles de nuestra aplicación y priorizar las mejoras.
Continúa aprendiendo y siempre revisa y verifica que hayas podido instalar y correr el proyecto sin problemas. En la próxima clase, profundizaremos en aspectos fundamentales sobre el navegador, pieza clave para próximas optimizaciones. ¡Sigue adelante, tu aprendizaje vale la pena!
Instalación y Configuración de Proyecto Web con Git y Webpack
Soluciono el problema, aunque otra opción sería cambiar la versión de node para installar dependencias y en general para este proyecto. Pero funciono bien, gracias!
Creo que tendré que hacer una pausa para hacer cursos de GIT y manejar sistemas Línux. Emocionante el curso y el tema, pero odio la parte en que el otros sistemas operativos son los que se usan para los cursos y los que aún seguimos en windows quedamos perdidos.
Ay, tienes toda la razón! En Windows lamentablemente siempre cambia una que otra cosa; si te sirve, PowerShell busca reducir esa brecha y da los mismos comandos que usa Linux en Windows: https://docs.microsoft.com/en-us/powershell/
Y sobre GIT, si, super recomendado que lo hagas, te servirá para todo :D
Cuando quise cambiar de branch, así como el profesor lo hizo en el minuto 3:04, a mi me salió en la ventana de comandos que primero debía hacer el pre-commit con algo llamado husky. Primera vez en mi vida que yo veo eso., investigué es stackover flow y la mejor respuesta que encontré fue que es mejor ir manualmente al directorio del proyecto y borrar esa carpeta husky, porque si no lo haces no te va a dejar hacer tu primer commit por nada del mundo, peor cambiar de branch.
Espero esto les sirva de algo.
Saludos.
Para los que usan Debian probablemente les saldrá un error
Error:Protocolerror(Tracing.start):'Tracing.start' wasn't found
Según vengo leyendo en github es un error de Debian y no parece tener solución por el momento. Yo solucioné mi problema bajando una versión portable de Chromium y ejecutando lighthouse ahí
Al insertar "npm install" me encontré con el error: "Error: Cannot find module '../lib/utils/unsupported.js'". Pude repararlo tras reinstalar node desde homebrew con "brew reinstall node".
También puede influir la versión de Lighthouse, durante la grabación del curso estuvieron modificando mucho la forma como se calculaba cada medida y el peso que representaba para el puntaje. Así que no te preocupes si no es igual, usálo sólo como guía :)
Buenas, pues no se a cuantos de ustedes les haya o pueda llegar pasar este error.
Encontré esta solución, espero ayudarlos.
Linux and macOS(WindowsGitBash)-exportNODE_OPTIONS=--openssl-legacy-provider
Windows command prompt-setNODE_OPTIONS=--openssl-legacy-provider
WindowsPowerShell-$env:NODE_OPTIONS="--openssl-legacy-provider"
Bueno, parece que los estandares han bajado porque no me da tan mala puntacion en mobile... o los navegadores han mejorado en 3 años y lo que antes era un impedimento ahora no lo es hehe. Como sea vamos a llevarla a 100 puntos.
Hoy, 6 de Octubre del 2024 estoy tomando el curso, y me encontré con problemas para levantar el entorno de desarrollo, me tocó utilizar NVM (Node Version Manager) y pasar de la versión 20.x.x de Node a la versión de 16.x.x.
Espero que no hayan más problemas mientras continuo con el curso
Sé que este error se deriva de que hay versiones nuevas y que debo cambiar la propiedad contentBase
npm run start
> platzi-optimizacion-web@0.1.0 start
> npm run dev
> platzi-optimizacion-web@0.1.0 dev
> webpack-dev-server
[webpack-cli]Invalid options object.DevServer has been initialized using an options object that does not match the API schema.- options has an unknown property 'contentBase'.These properties are valid: object { allowedHosts?, bonjour?, client?, compress?, devMiddleware?, headers?, historyApiFallback?, host?, hot?, http2?, https?, ipc?, liveReload?, magicHtml?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, port?, proxy?, server?, setupExitSignals?,static?, watchFiles?, webSocketServer?}
Pero no recuero especificamente por cuál debería reemplazarla ¿Alguien me lo recuerda plis?
// Everything that's not the root path, it's a static file
// Let serve-handler take care of it
if (pathname !== '/') {
return await handler(request, response)
}
Intenta descargando el archivo desde la siguiente !url y hacer checkout al tag correcto para despues instalar las dependencias con npm install y despues npm run start, serviria que me dijeras en que momento recibes ese mensaje de error
trate de abrirlo asi y no me dejo, me toco usar un static server de node, se puede instalar globalmente con el comando
npm i static-server -g
y usar en cualquier proyecto con el comando siempre y cuando haya un index.html en la raiz
static-server
En Octubre del 2023, depronto tienen problemas para que el proyecto se vea, con esto me funciono:
1, un aporte de un compañero, la actualización de webpack:
npm i webpack@latest webpack-cli@latest webpack-dev-server@latest