node.js - 使用 Stylus 和 CoffeeScript 中间件是否会降低 Node.js Express 应用程序的速度?

标签 node.js performance express coffeescript stylus

Stylus 和 CoffeeScript 中间件会自动为您编译任何 Stylus 和 CoffeeScript 代码,而无需重新启动您的应用程序,例如,您可以编辑 .styl 文件,只需刷新浏览器中的页面,您的更改就会出现。我发现这在开发时非常方便,但这会严重影响最终用户在生产中的页面加载时间吗?

我的 Express 设置通常是这样的 (CoffeeScript):

app = express()
app.set 'views', __dirname + '/views'
app.set 'view engine', 'jade'
compile = (str, path) -> return stylus(str).set 'filename', path
app.use stylus.middleware {
  src: __dirname + '/stylus',
  dest: __dirname + '/assets/css',
  compile: compile
}
app.use coffee {
  src: __dirname + '/coffee',
  dest: __dirname + '/assets/js',
  encodeSrc: false
}
app.use express.static __dirname + '/assets'

最佳答案

它肯定会比静态提供预编译文件慢(如果 Stylus 和 CoffeeScript 不支持缓存,我不知道)。问题是,这是否重要。这取决于您的应用收到的流量强度。

一般来说,我建议预编译您的文件并静态提供它。对于部署,我建议使用 Gulp.js 之类的东西并观察你的文件。使用 gulp,您的文件可以在文件更改时自动编译,这在大多数情况下比在请求文件时编译要好。

关于node.js - 使用 Stylus 和 CoffeeScript 中间件是否会降低 Node.js Express 应用程序的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150848/

相关文章:

node.js - 无法从 API 上的 axios 接收数据

node.js - 加载共享库时出错 : libicui18n. so.68

node.js - 使用 Node/Express/Socket.IO 进行身份验证

javascript - 连接来自不同服务器的 socket.io 时出错

c# - 为什么 WhereSelectArrayIterator 不实现 ICollection?

javascript - NodeJS + ExpressJS : Request header field not allowed by Access-Control-Allow-Headers in preflight response

node.js - 如何在 NodeJs 响应中仅发送列表的特定属性

php - Node Js 与 PHP 之间的通信,反之亦然

C#性能: construct new collection with existing items using constructor or loop?

performance - Oracle 编号和 varchar 连接