我有一个小的node.js应用程序(我的第一个),我希望在服务器加载时编译它的less.js样式表。我刚开始的一点是jade的快速示例应用程序,它在创建服务器时会编译它的SASS模板:
var pub = __dirname + '/public';
var app = express.createServer(
express.compiler({ src: pub, enable: ['sass'] }),
express.staticProvider(pub)
);
我看到了这一点,并希望它可以简单到将sass改为less,但这似乎不起作用。
我应该采取不同的方法吗?有什么我想念的吗?我无法在任何地方找到.compile方法的文档。
谢谢!
答案 0 :(得分:3)
你必须直接编译。 Sass在快递中不会编译得更少。它直接编译成css。 同样少。它直接编译成css。
var app = express.createServer(
express.compiler({ src: pub, enable: ['less'] }),
express.staticProvider(pub)
);
答案 1 :(得分:3)
如果你想缩小输出的css,我发现内置的编译器(来自connect模块)缺少compress选项。因此,而不是为它编写我自己的中间件编译器。我在我的app中覆盖了less less编译器。
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'] }));
答案 2 :(得分:1)
对于快递3,请使用以下代码段:
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);
});
});