javascript - preprocesador - ¿Te beneficiaría precompilar las plantillas de jade en producción en expreso?
programacion pug (1)
Cuando Jade compila la plantilla, la plantilla se almacena en caché. En el entorno de producción, si calienta la memoria caché, no es necesario precompilar la plantilla. Incluso si no lo hace, la plantilla se almacenará en caché después de su primera compilación.
Te recomiendo que eches un vistazo al código fuente de Jade para comprender mejor cómo funciona.
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);
};
Fuente: https://github.com/visionmedia/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);
};
Fuente: https://github.com/visionmedia/jade/blob/1.3.0/lib/jade.js#L291-L295
Al usar jade-lang en la producción, ¿me beneficiaría si tuviera algún tipo de middleware que precompila todas las vistas .jade y luego las use en res.render? ¿O eso sucede automáticamente cuando haces NODE_ENV = producción?
Simplemente estoy explorando opciones sobre cómo acelerar el renderizado de jade en la producción.