使用express在node.js中渲染少的示例表的最佳方法是什么?
题
我有一个小节点。JS应用程序(我的第一个),我想在服务器加载时汇总它的较少。JS样式表。我开始的观点是Jade的Express示例应用程序,其中看起来它会在创建服务器时编译其SASS模板:
var pub = __dirname + '/public';
var app = express.createServer(
express.compiler({ src: pub, enable: ['sass'] }),
express.staticProvider(pub)
);
我看到了这一点,并希望这会像更少的时间更简单,但这似乎不起作用。
我应该采取不同的方法吗?我缺少什么吗?我在任何地方都找不到.compile方法的文档。
谢谢!
解决方案
您必须直接汇编。 Sass不会在Express中汇编。它直接编译为CSS。相同的少量。它直接编译为CSS。
var app = express.createServer(
express.compiler({ src: pub, enable: ['less'] }),
express.staticProvider(pub)
);
其他提示
如果要缩小输出的CSS,我发现内置编译器(来自连接模块)缺少压缩选项。因此,与其编写自己的中间件编译器。我覆盖了我的应用程序中的Connect少编译器。
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'] }));
对于Express 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);
});
});
不隶属于 StackOverflow