Qual è il modo migliore per rendere meno fogli di stile in node.js usando Express?

StackOverflow https://stackoverflow.com/questions/4028569

  •  26-09-2019
  •  | 
  •  

Domanda

Ho una piccola app Node.js (la mia prima) che voglio compilare è meno fogli di stile quando il server si carica. Il punto a cui sto iniziando è l'app Express Exex per Jade in cui sembra compila i suoi modelli Sass quando viene creato il server:

var pub = __dirname + '/public';

var app = express.createServer(
  express.compiler({ src: pub, enable: ['sass'] }),
  express.staticProvider(pub)
);

Ho visto questo e speravo che sarebbe stato semplice come cambiare Sass a meno, ma ciò non sembra funzionare.

C'è un approccio diverso che dovrei adottare? C'è qualcosa che mi manca? Non riesco a trovare la documentazione sul metodo .comipile ovunque.

Grazie!

È stato utile?

Soluzione

Devi compilare meno direttamente. SASS non si compila a meno in espresso. Compila direttamente su CSS. Lo stesso con meno. Compila direttamente su CSS.

var app = express.createServer(
  express.compiler({ src: pub, enable: ['less'] }),
  express.staticProvider(pub)
);

Altri suggerimenti

Se si desidera minimizzare il CSS output, ho scoperto che il compilatore integrato (dal modulo Connect) mancava l'opzione Compress. Quindi, piuttosto che scrivere il mio compilatore di middleware per questo. Ho sovrascritto il compilatore Connect Meno nella mia app.

var express = require('express');
var app = express.createServer();
var less;

express.compiler.compilers.less.compile = function (str, fn) {
    if (!less) less = require("less");                                                      
    try {
        less.render(str, { compress : true }, fn);
    } catch (err) {
        fn(err);
    }
};

app.use(express.compiler({ src: publicdir, enable: ['less'] }));

Per Express 3, usa il seguente frammento:

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

var app = express();
app.engine('less', function (path, options, callback) {
  fs.readFile(path, 'utf8', function (error, contents) {
    if (error) return callback(error);
    less.render(contents, options, callback);
  });
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top