¿Cómo configurar y optimizar nuestro entorno de desarrollo con Webpack?
La transición hacia un entorno de desarrollo optimizado puede sembrar curiosidad y entusiasmo, sobre todo cuando introducimos herramientas potentes como Webpack. Este artículo te guiará, con sencillos pasos, para configurar un entorno donde trabajarás más cómodamente al desarrollar aplicaciones con Svelte, Babel, y Webpack. No solo cargarás las herramientas necesarias, sino que también adquirirás habilidades para personalizar este entorno según tus preferencias.
¿Cuáles son los pasos iniciales para integrar Svelte?
Para comenzar con nuestra configuración, es crucial entender que nuestro proyecto de Pushstagram se desarrollará utilizando Webpack. Al emplear este potente empaquetador de módulos, seguimos los siguientes pasos:
Instalar Svelte:
Usamos el comando: npm install svelte --save-dev.
Asegúrate de tener instalada la última versión, que en este caso es la 3.18.
¿Cómo se integra Babel en nuestro proyecto?
Babel es una herramienta indispensable para transpilar JavaScript moderno. De esta manera, aseguramos que nuestro código sea compatible con la mayoría de los navegadores. Para configurarlo, realizamos:
Antes de ejecutar, aseguramos que no haya errores tipográficos en los paquetes y flags.
¿Cómo se configura Webpack para gestionar nuestro proyecto?
Con Webpack, el proceso puede parecer intimidante al comienzo, pero es esencial para automatizar el flujo de trabajo. Aquí te mostramos cómo configurarlo:
Este archivo incluirá instrucciones para Webpack sobre cómo compilar y gestionar los recursos del proyecto.
¿Qué importancia tiene estructurar nuestro archivo webpack.config.js?
El archivo de configuración es el núcleo donde definimos cómo queremos que funcionen las distintas herramientas dentro de nuestro proyecto. A continuación, un vistazo a su estructura básica:
¿Por qué es vital adaptarse a las configuraciones personalizadas?
Es crucial aprender a adaptar la configuración según los requisitos del proyecto. Analizar y personalizar estos ajustes nos permite:
Maximizar la eficiencia del proyecto.
Identificar y controlar los puntos críticos del flujo de trabajo.
Configurar herramientas que aseguren compatibilidad y optimización.
A través de estos pasos, has configurado exitosamente un entorno de desarrollo profesional, adaptando herramientas modernas para la creación de proyectos robustos con Svelte. ¡Sigue experimentando y ampliando tus conocimientos para integrar nuevas tecnologías y mejorar continuamente!
Aquí yo recomiendo el curso de webpack para que puedan entender las directivas y el curso sobre gestor de dependencias npm para que sean unos Pros en esta herramienta. 💪😎
🎉Sin olvidar claramente sus respectivas documentaciones:
Webpack
Babel
Npm
Dentro del vídeo falto crear el archivo de configuración de babel, recuerden descargarlo en la sección de enlaces
Para los que vengan a futuro, para no tener errores de compatibilidad y comandos, donde seguro las librerias ya vayan avanzando, actualizandose y/o mutando, mi recomendación para poder seguir el curso igual que el profe, es agregar al package.json las dependencies y devDependencies con las versiones que utiliza el profesor, y correrlas sin instalar de la forma que hace el profe sino así:
Y luego correr el comando npm install, de esta forma instala las mismas versiones que el profesor a la hora de hacer el curso y debería andar todo correctamente sin tener problemas.
Mucha suerte con el curso :)
Es importante crear el archivo .babelrc con lo siguiente:
{"presets":["@babel/preset-env"]}
Es necesario hacer todo esto con cada proyecto o se puede usar directamente : npx degit svelte/template nombre del proyecto?
Venía buscando la respuesta a esto porque me pregunto lo mismo
Eso me agrada mucho, que se configure un proyecto desde el inicio, así se pone en practica el curso de webpack
Importarte hacer el curso de webpack, será el próximo a tomar.
Ese curso es viejo en platzi
$ npm run build
pugstagram@1.0.0 build /home/andtooan/pugstagram
webpack --mode production
assets by status 238 bytes [cached] 2 assets
ERROR in main
Module not found: Error: Can't resolve 'babel-loader' in '/home/andtooan/pugstagram'
resolve 'babel-loader' in '/home/andtooan/pugstagram'
Parsed request is a module
using description file: /home/andtooan/pugstagram/package.json (relative path: .)
resolve as module
looking for modules in /home/andtooan/pugstagram/node_modules
single file module
using description file: /home/andtooan/pugstagram/package.json (relative path: ./node_modules/babel-loader)
no extension
/home/andtooan/pugstagram/node_modules/babel-loader doesn't exist
.js
/home/andtooan/pugstagram/node_modules/babel-loader.js doesn't exist
/home/andtooan/pugstagram/node_modules/babel-loader doesn't exist
looking for modules in /home/andtooan/node_modules
single file module
No description file found in /home/andtooan/node_modules or above
no extension
/home/andtooan/node_modules/babel-loader doesn't exist
.js
/home/andtooan/node_modules/babel-loader.js doesn't exist
/home/andtooan/node_modules/babel-loader doesn't exist
/home/node_modules doesn't exist or is not a directory
/node_modules doesn't exist or is not a directory
webpack 5.25.0 compiled with 1 error in 1081 ms
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pugstagram@1.0.0 build: webpack --mode production
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the pugstagram@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/andtooan/.npm/_logs/2021-03-16T23_51_26_427Z-debug.log
Me aparece todo eso y no funciona, aiudaaaaaa, estoy chiquito u.u
Posiblemente debes tener algún typo o error en el código de tu archivo webpack.config.js
Te dejo el repo del profe Oscar Barajas para que lo compares y re revises y nuevamente lo vuelvas a hacer, pero ojo no lo copies y pegues, averigua donde tienes el error. Así se aprende mejor! 👌🏽
dice que le pone el --save porque es una dependencia de desarrollo, pero para guardarlo como dependencia de desarrollo no sería:
npm install svelte --save-dev
usando --save-dev como lo hace despues cuando instala babel?
¿Se equivocó a la hora de usar --save o en decir que era una dependencia de desarrollo?
Hola!
Yo creo que se equivocó en decir "dependencia de desarrollo" porque svelte debería terminar en producción.
npm install @babel/core @babel/preset-env @babel/polyfill babel-loader svelte-loader --save-dev
npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
added 253 packages, and audited 255 packages in 9s
22 packages are looking for funding
run npm fund for details
found 0 vulnerabilities
Si despues de configurar el entorno de trabajo desean subir los cambios hasta ahora realizados de pugstagram en el repositorio, recuerden añadir el archivo .gitignore :
/node_modules//public/build/.DS_Store
Ya que se corre el riesgo de subir node_modules por no existir el archivo .gitignore.
Porque es mejor crear nuestro proyecto con Webpack y paso a paso? porque no usarlo como está configurado cuando se usa el comando
npx degit sveltejs/template my-svelte-project```?
Ninguno de estos te garantiza que se despacha solo. Necesitan de un gestor de dependencias y paquetes para funcionar.
En ese template, ocupa RollUp y un servidor de pruebas como Now.sh. Te recomiendo revisar la actividad de los repositorios y recuerda que es al gusto el ocupar un template u otro.
Por si te interesa te comparto el enlace de Rollup vs Wepack
Siempre es bueno ser capaz de configurar nuestro propio entorno de trabajo con todo lo que necesitamos, en esta clase lo hicimos para aprender
Importante que si no corre tu codigo o note aparece algun problema con el babel loader o algo similar, primeor crear un archivo .babelrc.