Quelle est la meilleure façon de rendre moins de styles de styles de moins dans Node.js en utilisant Express?

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

  •  26-09-2019
  •  | 
  •  

Question

J'ai une petite application Node.js (mon premier) que je veux compiler, c'est moins.js Styleshets lorsque le serveur se charge. Le point que je commence est l'exemple express pour Jade où il apparaît qu'il compile ses modèles sass lorsque le serveur est créé:

var pub = __dirname + '/public';

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

J'ai vu cela et j'espérais que ce serait aussi simple que de changer le SASS en moins, mais cela ne semble pas fonctionner.

Y a-t-il une approche différente que je devrais adopter? Y a-t-il quelque chose qui me manque? Je ne trouve nulle part la documentation sur la méthode .compile.

Merci!

Était-ce utile?

La solution

Vous devez compiler moins directement. SASS ne compile pas à moins dans Express. Il se compile directement sur CSS. Idem avec moins. Il se compile directement sur CSS.

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

Autres conseils

Si vous souhaitez minimer le CSS sorti, j'ai constaté que le compilateur intégré (à partir du module Connect) manquait l'option de compression. Donc, plutôt que d'écrire mon propre compilateur middleware pour cela. J'ai écrasé le compilateur Connect moins dans mon application.

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'] }));

Pour Express 3, utilisez l'extrait suivant:

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);
  });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top