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

标签 node.js express preprocessor middleware gruntjs

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

另外,在只有静态内容的页面上从模板(例如jade)预渲染html是否值得?或者这是否比它的值(value)更麻烦?

最佳答案

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

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

对于预渲染 HTML,它将提供性能优势。除非做得非常复杂,否则我会继续预渲染您可以轻松完成的所有内容。预先做好比事后固定要简单得多(如果您期望任何形式的增长,它在未来可能很重要)。

关于node.js - 通过快速中间件或构建系统进行预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616601/

相关文章:

node.js - Windows Azure 上的 nowJS

express - axios 请求获取连接 EHOSTUNREACH 错误。响应头得到默认源代码 'self'

javascript - 使用 Node 和 Express 4 使用 res.json 中的数据时出现非法 token

c - #include 带有 GLSL/C 的自定义 IO?

c++ - 如何将 CGO 用于具有条件内联函数的头文件?

javascript - Mongoose:异步验证

javascript - Mongoose - 遍历对象

mongodb - Mongoose 验证崩溃应用程序

bash - 评论中的变量扩展

node.js - 渲染大量复杂的 HTML