Intentando construir MENOS (menos css) usando un script de compilación con nodeJS

Estamos usando NodeJS para construir nuestro proyecto. Hemos integrado LESS CSS como parte del proyecto. Estamos tratando de mantener limpia nuestra compilación y nos gustaría poder llamar al comando lessc (o algo similar) para compilar nuestros archivos LESS.

La documentación de LESS no es muy detallada, pero quería comunicarse con la comunidad para encontrar una solución. Google no ha sido demasiado útil para mí en este tema.

Tenemos un archivo build.sh, que llama a varios otros archivos build.js (en los directorios respectivos). ¿Cómo puedo ejecutar LESSC para compilar mis archivos LESS?

preguntado el 03 de mayo de 12 a las 16:05

2 Respuestas

Usando node.js

var less = require('less')
    ,fs = require('fs');

fs.readFile('style.less',function(error,data){
    data = data.toString();
    less.render(data, function (e, css) {
        fs.writeFile('style.css', css, function(err){
            console.log('done');
        });
    });
});

contestado el 03 de mayo de 12 a las 18:05

Unos años más tarde... less@3.9.0 devuelve la salida como:

{
  css: 'rendered css',
  imports: ['source.css']
}

El código actualizado puede verse así:

const outputFile = 'style-iso.css';

const data = `.bootstrap-iso {
    @import (less) "style.css"; 
} `;

less.render(data, { strictMath: true }).then(
    output => {
        fs.writeFile(outputFile, output.css, err => {
            if (err) {
                throw err;
            }
            console.log(`${outputFile} saved!`);
        });
    },
    err => {
        console.error(err);
    });

Consejo

strictMath: true

es necesario si quieres renderizar bootstrap.css

Respondido 05 Abr '19, 12:04

Bueno, si realmente nos referimos a cosas como 3.9 - luego strictMath es obsoleto. Utilizar cualquiera math: 'strict' or math: 'parens-division' (recomendado). - siete-fases-max

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.