在Express的生产中,预编译Jade模板会有益吗?



在生产中使用玉式 -

我会受益于某种形式的中间件预编译所有.jade视图,然后在res.render中使用它们?还是当您进行node_env =生产时会自动发生?

我只是在探索如何加快玉器呈现生产的选项。

翡翠编译模板时,模板被缓存。在生产环境中,如果加热缓存,则无需预编译模板。即使您不这样做,模板将在第一次汇编后被缓存。

我建议您使用玉的源代码,以更好地了解其工作原理。

exports.render = function(str, options, fn){
  // ...
  var path = options.filename;
  var tmpl = options.cache
    ? exports.cache[path] || (exports.cache[path] = exports.compile(str, options))
    : exports.compile(str, options);
  return tmpl(options);
};

来源: https://github.com/visionmedia/jade/jade/blob/1.3.0/lib/jade.js#l255-l259

exports.renderFile = function(path, options, fn){
  // ...
  options.filename = path;
  var str = options.cache
    ? exports.cache[key] || (exports.cache[key] = fs.readFileSync(path, 'utf8'))
    : fs.readFileSync(path, 'utf8');
  return exports.render(str, options);
};

来源: https://github.com/visionmedia/jade/jade/blob/1.3.0/lib/jade.js#l291-l295

最新更新