Guía de inicio rápido de PostCSS Grunt Setup

En el último tutorial analizamos cómo configurar un proyecto PostCSS con Gulp. En este tutorial lograremos los mismos fines, usando Grunt. Al final de este tutorial, sabrá cómo configurar un proyecto PostCSS + Grunt con cualquier selección de complementos que elija.

Nota: Si nunca ha trabajado con la línea de comandos o los corredores de tareas, le recomiendo que antes de comenzar este tutorial, consulte nuestra serie gratuita: La línea de comandos para el diseño web..

Prerrequisitos

Como trabajaremos con Grunt, asumiremos que ya tiene instalados los requisitos previos para su uso:

  • Node.js
  • NPM
  • Git

Si no está seguro de tener estos instalados, siga el tutorial La línea de comandos para el diseño web: control de paquetes de terceros.

Asegúrese de tener Grunt CLI instalado globalmente y entienda su uso básico siguiendo la línea de comandos para diseño web: Automatización con Grunt. Además, siga las instrucciones en la sección "Proyecto de configuración para Grunt" del tutorial. Antes de continuar, debe tener una carpeta de proyecto con:

  • Un "gruntfile.js" (Gruntfile)
  • Un archivo "package.json"
  • Grunt instaló en la carpeta "node_modules" y configuró como una dependencia de desarrollo para su proyecto.

PostCSS a través de Grunt

En la carpeta de su proyecto, agregue dos subcarpetas, una llamada "src" y la otra llamada "dest". La carpeta "src" mantendrá sus archivos CSS sin procesar, y PostCSS escribirá sus archivos CSS compilados en la carpeta "dest".

Lo siguiente que deberá hacer es instalar el complemento Grunt para PostCSS en su proyecto: usaremos grunt-postcss para manejar la compilación.

En un terminal / indicador de comando apuntado a su carpeta de proyecto, ejecute el comando:

npm instala grunt-postcss --save-dev

En este punto, la estructura de su proyecto debería verse así:

Abra su Gruntfile para editar y comience agregando el shell básico de código que todos los Gruntfiles requieren:

module.exports = function (grunt) ;

Dentro de eso, vamos a usar el grunt.loadNpmTasks () Función para cargar en nuestro gruñido-postcss plugin como tal:

module.exports = function (grunt) grunt.loadNpmTasks ('grunt-postcss'); ;

Ahora estamos listos para comenzar a configurar la tarea Grunt que usaremos para ejecutar postcss. Primero, agregue el grunt.initConfig () función por encima de la línea que acabamos de añadir:

module.exports = function (grunt) grunt.initConfig (); grunt.loadNpmTasks ('grunt-postcss'); ;

Dentro de eso, configura un objeto llamado postcss al igual que:

module.exports = function (grunt) grunt.initConfig (postcss: ); grunt.loadNpmTasks ('grunt-postcss'); ;

Dentro de lo nuevo postcss objeto agregaremos dos objetos anidados más, uno llamado opciones y uno llamado dist:

module.exports = function (grunt) grunt.initConfig (postcss: options: , dist: ); grunt.loadNpmTasks ('grunt-postcss'); ;

los opciones objeto mantendrá la configuración para PostCSS, y el dist El objeto tendrá información sobre dónde se deben leer nuestros archivos CSS. desde y escrito a.

Avance ahora y cree un archivo CSS llamado "style.css" en la carpeta "src" de su proyecto. Agregue un código de prueba, como:

.prueba fondo: negro; 

Ahora actualiza el dist objeto para especificar "src / style.css" como nuestro archivo de origen, y "dest / style.css" como el archivo que queremos generar:

 dist: src: 'src / style.css', dest: 'dest / style.css'

Luego, dentro de la opciones objeto, agregue una matriz vacía llamada procesadores. Aquí es donde configuraremos los complementos de PostCSS para su uso un poco más tarde. Por ahora, solo actualízalo a:

 opciones: procesadores: [],

Ejecutar una compilación de prueba

Tu básico postcss La tarea ya está lista. Para probarlo, con su terminal / indicador de comando aún apuntando a su carpeta de proyecto, ejecute el comando:

Grueso Postcss

En tu terminal deberías ver este mensaje:

Ejecutando la tarea "postcss: dist" (postcss) >> 1 hoja de estilo procesada creada.

Y ahora, en su carpeta "dest", debe encontrar un nuevo archivo "style.css", que contenga el mismo código que el archivo "style.css" en su carpeta "src".

Añadir complementos de PostCSS

A continuación, agregaremos una selección de complementos y paquetes PostCSS: Autoprefixer (agrega prefijo de proveedor), cssnext (habilita la sintaxis futura) y precss (se extiende con la funcionalidad de Sass).

Ejecute los siguientes comandos para instalar cada uno en su proyecto:

npm install autoprefixer --save-dev npm install cssnext --save-dev npm install precss --save-dev

Nota: Los csssiguiente y precss Las instalaciones pueden tardar un poco, ya que son paquetes de varios complementos.

Ahora estamos listos para cargar cada uno de los complementos a través de procesadores matriz que creamos anteriormente. Actualice esa matriz a lo siguiente:

 procesadores: [require ('autoprefixer') (), require ('cssnext') (), require ('precss') ()]

Continuemos ahora, agregue un código de prueba a nuestro archivo fuente "style.css" y compruebe que nuestros complementos de PostCSS recién configurados están funcionando como se espera. 

Borre lo que ya tiene en el archivo y agregue este CSS en su lugar:

/ * Probar autoprefixer * / .autoprefixer display: flex;  / * Prueba de csssiguiente * / .cssnext fondo: color (rojo alfa (-10%));  / * Prueba precss * / .precss @if 3 < 5  background: green;  @else  background: blue;  

Ejecutar el Grueso Postcss Coméntelo de nuevo ahora, y el archivo resultante en su carpeta "dest" debe tener el siguiente contenido:

/ * Probando autoprefixer * / .autoprefixer display: -webkit-box; pantalla: -webkit-flex; pantalla: -ms-flexbox; pantalla: flexión;  / * Prueba de csssiguiente * / .cssnext fondo: rgba (255, 0, 0, 0.9);  / * Prueba de precss * / .precss background: green

Lo verás en el .autoprefixer clase, los prefijos de proveedores han sido agregados por Autoprefixer. En el .csssiguiente clase, una rgba () el color ha sido generado por csssiguiente. Y finalmente en el .precss clase, la @if @else condicional ha sido evaluado por PreCSS.

Configuración de opciones de plugin

Tenga en cuenta que si desea configurar opciones para un complemento, pase sus opciones a través del segundo par de corchetes después de exigir() Función para ese plugin. Por ejemplo, puede especificar la lista de navegadores en la que desea que funcione Autoprefixer, así:

 procesadores: [require ('autoprefixer') (browsers: ['last 1 version']), require ('cssnext') (), require ('precss') ()]

Compartiendo su proyecto

La belleza de PostCSS está en su capacidad de configurarse con cualquier combinación de complementos. Sin embargo, el desafío que esto presenta es garantizar que otras personas que deseen trabajar en un proyecto tengan la misma configuración de los complementos de PostCSS. Gracias a npm, este desafío se maneja a través de su sistema de gestión de dependencias..

Porque estás usando el --save-dev Cada vez que instale un complemento en su proyecto, se agregará a su archivo "project.json" como una dependencia de desarrollo. Esto significa que si desea compartir su proyecto con otros, ellos pueden ejecutar el comando npm instalar en el paquete que compartes con ellos y tienes todos los mismos complementos instalados automáticamente.

Para obtener más información sobre cómo funciona la administración de dependencias con NPM, consulte el tutorial La línea de comandos para el diseño web: control de paquetes de terceros.

Recapitulemos

En resumen de todo lo expuesto anteriormente:

  • Cree un proyecto npm con Grunt instalado y un Gruntfile dentro
  • Instala el complemento grunt-postcss
  • Configure su shell Gruntfile, cargando grunt-postcss con grunt.loadNpmTasks ('grunt-postcss');
  • Crea una tarea ronca para compilar tu CSS
  • Dentro de la tarea, configurar una opciones objeto que contiene un procesadores formación
  • También dentro de la tarea, configurar un dist Objeto que especifica sus archivos de origen y el destino de los archivos compilados

A partir de ahí, puede seguir los mismos pasos esenciales para habilitar cualquier complemento de PostCSS en su proyecto:

  • Instala el plugin en tu proyecto con 
    npm instalar --save-dev
  • Agregue ese nombre de variable en su preprocesadores array utilizando la función require ()
    exigir('') ().

Echa un vistazo al repositorio de Github para ver los archivos de inicio y los ejemplos completados..

A continuación: Explorando complementos

Ahora sabe cómo usar Gulp o Grunt para usar PostCSS con cualquier complemento que elija. Lo siguiente que necesita es una manera de explorar el ecosistema de complementos de PostCSS y encontrar excelentes complementos que sean perfectos para el tipo de proyectos que desea crear..

Veremos exactamente cómo puede hacerlo en el siguiente tutorial; “Guía de inicio rápido: explorando complementos”.