Skip links

Ensamblaje múltiples archivos CSS en uno

Stu Robson Ejecución de tareas Su CSS es «sin duda». Veo que aparecen artículos como este cada año, y hay una buena razón para esto, ya que CSS ha crecido muchas piernas nuevas en los últimos años. Tanto que ahora puede pedirle que llegue a SASS muchas de las características centrales que ahora se han horneado directamente a CSS. En realidad tenemos Jeff Bridgeforth Haga clic la próxima semana con artículos relacionados.

Lo que me gusta de la puñalada de Stu es que es un viaje continuo, no un cambio al por mayor. En realidad, él tiene una nueva publicación Especialmente para sellos que compilan múltiples archivos CSS en un archivo. Dividir el estilo en archivos separados es definitivamente la razón por la que sigo realizando mi trabajo. Me gusta poder encontrar exactamente lo que necesito en un archivo específico sin tener que cavar en las reglas de estilo generales.

¿Pero es esta la verdadera razón para continuar usando Sass? Honestamente, nunca lo cuestioné, tal vez fue porque al cerebro del lagarto no le importaba, siempre y cuando algo continuara funcionando. Oh, ¿quiero archivos de estilo parcial? Siempre haga esto con una cadena de herramientas salvaje que aún no me ha decepcionado. Lo sé, no es el camino más positivo.

Cuando no confía en SASS, STU describe dos formas de compilar múltiples archivos CSS:

Usando PostCSS

Ah, sí, podemos usarlo Postcss Ambos son y Sin problemas. Es fácil olvidar que la oficina de correos y SAS son compatibles, pero no dependen unos de otros.

postcss main.css -o output.css

Stu explica por qué esta puede ser una buena manera de inclinar su trabajo:

PostCSS puede integrarse sin problemas con herramientas de compilación populares como Webpack, Gulp y Crolup, lo que le permite incorporar la compilación CSS en su flujo de trabajo de desarrollo existente sin la necesidad de posibles dolores de cabeza de configuración adicional.

Scripts personalizados para la compilación

Lo último es eliminar la necesidad de cualquier dependencia. Stu tiene un script nodo.js personalizado:

const fs = require('fs');
const path = require('path');
// Function to read and compile CSS
function compileCSS(inputFile, outputFile) {
    const cssContent = fs.readFileSync(inputFile, 'utf-8');
    const imports = cssContent.match(/@import\s+('")((^'")+)('")/g) || ();
    let compiledCSS = '';
    // Read and append each imported CSS file
    imports.forEach(importStatement => {
        const filePath = importStatement.match(/('")((^'")+)('")/)(1);
        const fullPath = path.resolve(path.dirname(inputFile), filePath);
        compiledCSS += fs.readFileSync(fullPath, 'utf-8') + '\n';
    });
    // Write the compiled CSS to the output file
    fs.writeFileSync(outputFile, compiledCSS.trim());
    console.log(`Compiled CSS written to ${outputFile}`);
}
// Usage
const inputCSSFile="index.css"; // Your main CSS file
const outputCSSFile="output.css"; // Output file
compileCSS(inputCSSFile, outputCSSFile);

No 100% sin dependencias, sino geez, que es una excelente manera de reducir la sobrecarga y aún combinar archivos:

node compile-css.js

Este método está diseñado para directorios de archivos planos. Si te gusto, como subcarpetas anidadas:

Uso de la estructura de archivos planos y la estrategia de importación de una sola capa que he adoptado, las importaciones anidadas (puede manejarla). postcss-import No es necesario para la configuración de mi proyecto y el proceso de ensamblaje se puede simplificar mientras se mantiene la organización limpia.

Muy genial, gracias Stu! Y ver Publicación completa Porque hay muchos fondos útiles detrás de esto, especialmente en scripts personalizados.

Enlace directo →

Leave a comment

Home
Account
Cart
Search
¡Hola! ¡Pregúntame lo que quieras!
Explore
Drag