CursosEmpresasBlogLiveConfPrecios

Agregando variables de sass desde webpack

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

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

    09:15 min
  • 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

    Viendo ahora
  • 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

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
        Omar Flores Grimontt

        Omar Flores Grimontt

        student•
        hace 6 años

        A partir de la versión 8.0.0 de sass-loader la opción data fue renombrada a prependData, puedes encontrar más información acá.

        Es probable que si tienes esta versión de sass-loader instalada no te funcionen los cambios implementados en la clase. Sólo debes cambiar data por prependData y todo bien.

        O puedes instalar la versión 7.1.0 que es la que utilizan en el curso :).

          Jorge Humberto Nemogá Pinzón

          Jorge Humberto Nemogá Pinzón

          student•
          hace 6 años

          La solución usando el paquete sass-loader mayor a 8.0.0 es así:

          { test: /\.(s*)css$/, use: [ { loader: MiniCssExtractPlugin.loader }, 'css-loader', 'postcss-loader', { loader: 'sass-loader', options: { prependData: ` @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Vars.scss')}"; @import "${path.resolve(__dirname, 'src/frontend/assets/styles/MediaQueries.scss')}"; @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Base.scss')}"; `, }, }, ], },
        Favio Sauto

        Favio Sauto

        student•
        hace 6 años

        Tengo un problema, escribo el mismo código del curso y me lanza muchos errores que no sé cómo solucionar, me aparece este error sobre todos mis archivos .scss

        ERROR in ./src/frontend/assets/styles/components/Search.scss (./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src!./node_modules/sass-loader/dist/cjs.js??ref--5-3!./src/frontend/assets/styles/components/Search.scss) Module build failed (from ./node_modules/sass-loader/dist/cjs.js): display: flex; ^ Media query expression must begin with '(' in D:\Programming\Frontend\Curso Practico de React\PlatziVideo\src\frontend\assets\styles\components\Search.scss (line 2, column 1)

        Me aparece ese mismo error para cada uno de mis components .scss

          Carlos Sampol

          Carlos Sampol

          Team Platzi•
          hace 6 años

          Hola Fabio! Me podrías por favor compartir la configuración de sass en el loader por favor.

          Favio Sauto

          Favio Sauto

          student•
          hace 6 años

          ¡Claro!

          { test: /.(s*)css$/, use: [ { loader: MiniCssExtractPlugin.loader }, 'css-loader', 'postcss-loader', { loader: 'sass-loader', options: { data: ` @import "${path.resolve(__dirname, varsLocation)}" ` } } ] },
        Jorge Humberto Nemogá Pinzón

        Jorge Humberto Nemogá Pinzón

        student•
        hace 6 años

        Para cualquiera que realice la practica de este video usando la versión de sass-loader 8.0.0:

        La opción data ya no existe y ahora una forma es así:

        { test: /\.(s*)css$/, use: [ { loader: MiniCssExtractPlugin.loader }, 'css-loader', 'postcss-loader', { loader: 'sass-loader', options: { prependData: ` @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Vars.scss')}"; @import "${path.resolve(__dirname, 'src/frontend/assets/styles/MediaQueries.scss')}"; @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Base.scss')}"; `, }, }, ], },
        Yesenia S. E.

        Yesenia S. E.

        student•
        hace 6 años

        Alguien que pueda hecharle un ojo a mi repo por favor, al hacer npm run start:dev, no me marca ningún error, solo algunos warnings pero no me muestra nada en localhost, ya estuve buscando pero no encuentro como resolverlo. ¡¡GRACIAS!!

          Jose Luis Campos Bautista

          Jose Luis Campos Bautista

          student•
          hace 6 años

          Hola.

          Asegurase de que esta importando correctamente los scripts generados.

          Al remplazar los imports de scripts en el código del repositorio (feature/server-side-rendering), el despliegue se realiza correctamente.

          <script type="text/javascript" src="assets/app.js"></script> <script type="text/javascript" src="assets/vendor.js"></script>
        Erik Ricardo Sánchez Pérez

        Erik Ricardo Sánchez Pérez

        student•
        hace 6 años

        ¿Me pregunto que tanto impacta en un flujo de trabajo el renombrar archivos? 🤔

          Erik Elyager

          Erik Elyager

          student•
          hace 6 años

          El renombrar archivos siempre va a causar bastante trabajo y puede producir errores.

          Afortunadamente todos los editores profesionales de código tienen opciones de refactorización para que todo referencia al nombre de archivo sea reemplazada y así evitar errores.

        Javier Fuentes Mora

        Javier Fuentes Mora

        teacher•
        hace 6 años

        Igual muy mal demasiados errores :l

        Didier Zúñiga

        Didier Zúñiga

        student•
        hace 6 años

        También tengo el mismo problema de Favio, parece que no toma los .scss desde webpack.config.js

          Carlos Sampol

          Carlos Sampol

          Team Platzi•
          hace 6 años

          Que problema exactamente estás teniendo? Me puedes compartir porfa el código de tu loader de scss?

        Daniel Augusto Melgarejo Gómez

        Daniel Augusto Melgarejo Gómez

        student•
        hace 6 años

        En el archivo Vars.scss le falta comillas al import de url, por esto da problemas con sass-loader

        @import url('https://fonts.googleapis.com/css?family=Muli&display=swap');

        Daniel Hurtado

        Daniel Hurtado

        student•
        hace 6 años

        Cuál es la necesidad de realizar estos settings en un curso de server side render? Simplemente no hay necesidad, un curso más preciso es un millón de veces mejor que un curso largo sin enfoque claro.

        David Camacho

        David Camacho

        student•
        hace 6 años

        Hola, en mi caso me estaba dando error cuando intentaba cargar el archivo (es decir webpack no lo estaba cargando). Logré solucionando importanto el arhcivo sin el path.resolve(...) quedando de esta manera:

        { loader: 'sass-loader', options: { data: `@import 'src/frontend/assets/styles/Vars.scss';`, }, },

        :)

        Andres Roberto Coello Goyes

        Andres Roberto Coello Goyes

        student•
        hace 6 años
        data: ` @import 'src/frontend/assets/styles/Vars.scss'; @import 'src/frontend/assets/styles/Media.scss'; `,

        este fue lo que a mi me funciono

          Luis Lira

          Luis Lira

          student•
          hace 6 años

          Igual a mí fue la única manera que me funcionó, por más que busqué y releí el código nunca pude hacerlo como en el vídeo con path.resolve

          Wilson Marino Pablo Mendez

          Wilson Marino Pablo Mendez

          student•
          hace 6 años

          Que raro a mí me función con el path.resolve

        Daniel Ramírez Mendoza

        Daniel Ramírez Mendoza

        student•
        hace 6 años

        Para el error de los scss en el import falto el inicio de las comillas dobles quedando así:

        data: `@import "${path.resolve(__dirname, 'src/frontend/assets/styles/Vars.scss')}";`

        Si estás usando la version 8 de sass-loader, debes cambiar data por prependData

        Jhurgen Maraza

        Jhurgen Maraza

        student•
        hace 6 años

        Alguien me puede ayudar? no entiendo cual sería el error. tengo los mismo directorios que el profe.

        Captura de pantalla (21).png

        dejo mi Repo https://github.com/JhurgenMrz/Escuela-JS/tree/master/Ssr

          Marifer Villarroel

          Marifer Villarroel

          student•
          hace 6 años

          Hola Jhurgen

          Si aún no has solucionado el problema, prueba a hacer la importación en el archivo de configuracion de webpack de esta manera:

          @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Vars.scss')}";
        Nick David Fuenmayor Molinares

        Nick David Fuenmayor Molinares

        student•
        hace 6 años

        Nada de esto es necesario...

        rusbel bermúdez rivera

        rusbel bermúdez rivera

        student•
        hace 6 años

        importante

        sass-loader ha cambiado, actualiza a la versión 8, por favor recuerda que borramos el import de path de webpack.config, vuelve a importarlo, y usa esta configuración

        { // Regla para trabajar con los archivos html test: /\.(s*)css$/, use: [ { loader: MiniCssExtractPlugin.loader }, 'css-loader', 'postcss-loader', { loader: 'sass-loader', options: { prependData: ` @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Vars.scss')}"; @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Media.scss')}"; @import "${path.resolve(__dirname, 'src/frontend/assets/styles/Base.scss')}"; `, }, }, ], },