CursosEmpresasBlogLiveConfPrecios

Usando Plugins y vendor file en Webpack

Clase 8 de 22 • Curso de Server Side Render con Express 2019

Clase anteriorSiguiente clase

Contenido del curso

Primeros pasos

  • 1

    ¡Vamos a renovar este curso!

    00:42 min
  • 2
    Introducción y presentación del curso

    Introducción y presentación del curso

    01:16 min
  • 3
    ¿Qué es Server Side Rendering?

    ¿Qué es Server Side Rendering?

    05:58 min
  • 4
    Babel, Express y React

    Babel, Express y React

    02:58 min
  • 5
    Creación del proyecto base

    Creación del proyecto base

    11:15 min
  • 6
    Configuración de ESLint con Webpack

    Configuración de ESLint con Webpack

    06:22 min
  • 7
    Preparación de Webpack, Babel, PostCSS y Assets

    Preparación de Webpack, Babel, PostCSS y Assets

    05:06 min
  • 8
    Usando Plugins y vendor file en Webpack

    Usando Plugins y vendor file en Webpack

    Viendo ahora
  • 9
    Integración de Webpack con Express

    Integración de Webpack con Express

    09:08 min

Integración de Express con React

  • 10
    Servir React con Express

    Servir React con Express

    07:05 min
  • 11
    Agregando variables de sass desde webpack

    Agregando variables de sass desde webpack

    05:04 min
  • 12
    Aplicando history y creando rutas para el servidor

    Aplicando history y creando rutas para el servidor

    08:26 min
  • 13
    Haciendo initialState accesible y configurando Redux DevTools

    Haciendo initialState accesible y configurando Redux DevTools

    07:19 min

Aplicar Server Side Rendering

  • 14
    Definiendo la función main para renderizado desde el servidor

    Definiendo la función main para renderizado desde el servidor

    10:16 min
  • 15
    Aplicando la función main para renderizado desde el servidor y creación del string de HTML

    Aplicando la función main para renderizado desde el servidor y creación del string de HTML

    06:20 min
  • 16
    Assets require hook

    Assets require hook

    03:00 min
  • 17
    Hydrate y estado de Redux desde Express

    Hydrate y estado de Redux desde Express

    07:45 min

Trabaja con entornos de desarrollo y producción

  • 18
    Configurando nuestro servidor para producción

    Configurando nuestro servidor para producción

    04:18 min
  • 19
    Configurando el frontend y webpack para producción

    Configurando el frontend y webpack para producción

    08:19 min
  • 20
    Compresión de Assets

    Compresión de Assets

    07:28 min
  • 21
    Hashes

    Hashes

    14:42 min
  • 22
    Cierre del Curso

    Cierre del Curso

    01:29 min
Tomar examen
Resumen

El vendor file contiene todas nuestras dependencias del proyecto.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Nadir Antonio Soza Solis

        Nadir Antonio Soza Solis

        student•
        hace 6 años

        Van dos videos escribiendo y escribiendo configuraciones que al no ver el funcionamiento no logro entender para que sirve cada una.

        Alexander Henry Obispo Buendia

        Alexander Henry Obispo Buendia

        student•
        hace 6 años

        De los peores cursos que he tomado...

          Kevin Morales

          Kevin Morales

          student•
          hace 6 años

          Cuéntanos por qué dices eso? Cómo puede mejorar el curso?

        Andres Felipe Valencia Benitez

        Andres Felipe Valencia Benitez

        student•
        hace 6 años
        optimization: { splitChunks: { chunks: 'async', name: true, cacheGroups: { vendors: { name: 'vendors', chunks: 'all', reuseExistingChunk: true, priority: 1, filename: 'assets/vendor.js', enforce: true, test(module, chunks) { const name = module.nameForCondition && module.nameForCondition(); return chunks.some((chunk) => chunk.name !== 'vendor' && /[\\/]node_modules[\\/]/.test(name)); }, }, }, }, },
        Chavez

        Chavez

        student•
        hace 6 años

        Muy mal el curso, la explicación y el código pésimo

        Jorge Méndez Ortega

        Jorge Méndez Ortega

        student•
        hace 6 años

        Que es mejor utilizar Vendor o DLL ya que entiendo que es prácticamente lo mismo solo que para el DLL se genera el empaquetada a parte esto es lo que le permite mejorar tiempos de transpiración y dicho archivo también tiene el código de las dependencias utilizadas.

          Enrique Devars

          Enrique Devars

          teacher•
          hace 6 años

          Hice pruebas en un proyecto usando dll y vendor, y el bundle más reducido fue usando el dll

        Didier Zúñiga

        Didier Zúñiga

        student•
        hace 6 años

        Estoy obteniendo este error y no he podido ver como resolverlo:

        WARNING in ./src/frontend/index.js Module Warning (from ./node_modules/eslint-loader/dist/cjs.js): Failed to load config "airbnb" to extend from.
          Daniel Esteves

          Daniel Esteves

          student•
          hace 6 años

          ¡Hola! Para el error que te muestra debes realizar estos pasos cualquier cosa me comentas :muscle:

        Jorge Velasquez

        Jorge Velasquez

        student•
        hace 6 años

        No entiendo porque tantos errores, el profe en el vídeo declara las cosas de una forma y en la pestaña de archivos y enlaces cargan unos archivos con otras configuraciones. :(

        ENRIQUE NIETO MARTINEZ

        ENRIQUE NIETO MARTINEZ

        student•
        hace 6 años

        No me deja avanzar el siguiente error:

        ERROR in ./src/frontend/index.js Module build failed (from ./node_modules/eslint-loader/dist/cjs.js): C:\Users\ennima\Desktop\School\Platzi\serverRender\node_modules\eslint\lib\source-code\source-code.js:426 return /s/u.test(text.replace(/\/\*.*?\*\//gus, "")); ^ SyntaxError: Invalid regular expression flags at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:599:28) at Object.Module._extensions..js (module.js:646:10) at Module.load (module.js:554:32) at tryModuleLoad (module.js:497:12) at Function.Module._load (module.js:489:3) at Module.require (module.js:579:17) at require (internal/module.js:11:18) at Object.<anonymous> (C:\Users\ennima\Desktop\School\Platzi\serverRender\node_modules\eslint\lib\source-code\index.js:4:17) Child html-webpack-plugin for "index.html":
        Maximo Martinez Soria

        Maximo Martinez Soria

        student•
        hace 6 años

        Para que sirve todo esto que estamos haciendo?

        Edwin García

        Edwin García

        student•
        hace 6 años

        ¿Por qué en el archivo .babelrc se usan esos paquetes y se instalan con nombres diferentes? Usualmente uno instala los paquetes con los mismos nombres y me dio dificultad porque no los encontré, pero instalé otros y funcionaron. Instalé

        npm i babel-plugin-transform-class-properties react-hot-loader babel-plugin-transform-object-assign -D
          Manuel Ojeda

          Manuel Ojeda

          student•
          hace 6 años

          Normalmente se instala el nombre con la terminación de plugin o class que va especifico hacia algo, por lo que solamente especificamos diciéndole a babel que es lo que hará compatible con los navegadores.

        Alexis Alberto Texis Auza

        Alexis Alberto Texis Auza

        student•
        hace 6 años

        ¿Porque al probar la configuracion integrando vendor file,cuando se realizan imports dinamicos surge un error de compilacion?

          Carlos Sampol

          Carlos Sampol

          Team Platzi•
          hace 6 años

          Podrías compartirme tu configuración de Webpack por favor ?

          Carlos Sampol

          Carlos Sampol

          Team Platzi•
          hace 6 años

          Para estos casos de suele usar react-loadable cómo estás haciendo el import dinámico ?

        Santi Dalmasso

        Santi Dalmasso

        student•
        hace 6 años

        Muy mal organizado el curso. Faltan explicaciones de las configuraciones. El profesor se la pasa escribiendo y escribiendo configuraciones y arreglando errores. Se entiende muy poco o casi nada.

          Oscar Barajas Tavares

          Oscar Barajas Tavares

          Team Platzi•
          hace 6 años

          Este curso estamos organizándolo nuevamente para una nueva versión enfocado en resolver los problemas del curso.

          rusbel bermúdez rivera

          rusbel bermúdez rivera

          student•
          hace 6 años

          en la vida real nos la pasamos corrigiendo detalles, es parte del show

        Luis Lira

        Luis Lira

        student•
        hace 6 años

        Hay varios errores en el código del vídeo, les recomiendo ver el comentario de Andrés para que no los tengan: https://platzi.com/comentario/803224/

        Didier Zúñiga

        Didier Zúñiga

        student•
        hace 6 años

        Y en consola aparece este error:

        Uncaught Error: Module build failed (from ./node_modules/eslint-loader/dist/cjs.js): TypeError: Cannot read property 'forEach' of undefined at Linter.parseResults
          Carlos Sampol

          Carlos Sampol

          Team Platzi•
          hace 6 años

          Comprueba que tengas instalado eslint-config-airbnb

          Si no funciona compárteme porfa tu archivo de configuración de eslint

          Didier Zúñiga

          Didier Zúñiga

          student•
          hace 6 años

          Si, ya esta instalado.

          Aquí esta el archivo: https://github.com/didierzuniga/videoplayer/blob/feature/router-redux/.eslintrc

        rusbel bermúdez rivera

        rusbel bermúdez rivera

        student•
        hace 6 años

        ¿Que es vendor.js o vendor file? aqui una lectura que nos da la explicación por Demain de platzi

        https://platzi.com/blog/que-es-el-vendor-file/

        Jesús Miguel Quinto Teran

        Jesús Miguel Quinto Teran

        student•
        hace 6 años

        Es necesario una mejor organización para la clase anterior y esta clase.

        Creo que la mayoría de los comentarios están un poco exagerados, tenemos que recordar que:

        1. Todos (TODOS), inclusive los profesores de platzi se equivocan.
        2. La detección y corrección de errores y un parte muy importante de estos cursos.
        3. Los aportes de tus compañeros pueden ser de mucha utilidad, yo por ejemplo vi los errores y revise el sistema de comentarios y llegue sin errores a esta clase.

        Saludos :)

        Ingrid Sagrero

        Ingrid Sagrero

        student•
        hace 6 años

        tengo un error que no he logrado solucionar, ayuda pf!!! Les dejo la url del repo

        ERROR in ./src/frontend/index.js Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: Cannot find module 'babel-plugin-transform-class-properties' from 'D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo' at Function.module.exports [as sync] (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules\resolve\lib\sync.js: 71:15) at resolveStandardizedName (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\files\p lugins.js:101:31) at resolvePlugin (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\files\plugins.js: 54:10) at loadPlugin (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\files\plugins.js:62: 20) at createDescriptor (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\config-descrip tors.js:154:9) at items.map (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\config-descriptors.js :109:50) at Array.map (<anonymous>) at createDescriptors (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\config-descri ptors.js:109:29) at createPluginDescriptors (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\config- descriptors.js:105:10) at plugins (D:\msagrerom\Documents\otrosIngrid\server-side-rendering\PlatziVideo\node_modules@babel\core\lib\config\config-descriptors.js:4 0:19) Child html-webpack-plugin for "index.html": 1 asset Entrypoint undefined = ./index.html [./node_modules/html-webpack-plugin/lib/loader.js!./public/index.html] 171 bytes {0} [built] i 「wdm」: Failed to compile.

          Gabriel De Andrade

          Gabriel De Andrade

          student•
          hace 6 años

          Hola parece que babel-plugin-transform-class-properties no está instalado ¿Puedes intentar instalarlo nuevamente?

          Ingrid Sagrero

          Ingrid Sagrero

          student•
          hace 6 años

          Instalé de nueva cuenta varios paquetes y resultó

        Enmanuel castillo

        Enmanuel castillo

        student•
        hace 6 años

        Creo que es mejor esperar la modificación del curso pues no he podido continuar con tantos errores