通过快速中间件或通过构建系统进行预处理

时间:2013-05-17 19:34:23

标签: node.js express preprocessor middleware gruntjs

通过中间件(使用express)预处理静态资源是生产环境的一个好主意吗?根据我的理解,中间件堆栈是针对每个请求串行运行的。那不意味着预处理中间会在每次请求后重新生成静态资源(即some_styles.less - > some_styles.css)吗?如果是这样,那么简单地预先处理诸如grunt.js之类的构建系统并提供这些文件会更好吗?我希望将css和js的最终渲染连接到一个文件并缩小。

此外,是否值得在仅包含静态内容的页面上从模板(如jade)预呈现html?或者这比它的价值更麻烦?

1 个答案:

答案 0 :(得分:3)

处理CSS和JS预处理和缩小的最简单方法是通过某种构建系统,无论是grunt,cake等。它还可以提供一些性能优势;至少,它减少了服务器的工作量。

对于我的项目,我在Cakefile中有任务来处理CSS和JS。这些是通过运行构建任务来调用的,只是输出到通过app.use("/res", express.static("RESDIR"))设置的静态文件的目录。

对于预呈现HTML,它将提供性能优势。除非这样做非常复杂,否则我会继续预先渲染您可以轻松完成的所有内容。事先做到这一点远远比把它固定在路上要简单得多(如果你期待任何增长,那将来都很重要)。