Heroku上的Node.js:在开发中使用中间件,但在生产中使用静态资产?

一些中间语言,如Stylus,提供了两种编译方式:通过连接中间件或通过CLI工具.后者可以生成静态编译资产(即.css文件).

所以我想在开发模式上使用中间件,而在生产中使用静态资产.我知道我可以使用app.configure(‘developmen’…)来表达(不)在开发模式下使用一些中间件.

在IaaS环境中,如Amazon EC2,我可以运行一个简单的shell脚本来自动重新编译我的所有资产.但是PaaS,特别是Heroku呢?我怎么能告诉它我的.styl在哪里以及应该在哪里生成.css?

最佳答案
你可能想看看https://github.com/adunkman/connect-assets.如果你传递build:true,它会缓存任何构建的javascript或css文件(它具有针对手写笔的手写笔内置支持).

如果你不感兴趣,你可以忽略snockets(像sprockets一样的javascript include系统),虽然我很喜欢使用它. #= require_tree app并且包含该目录中的所有js文件.在开发过程中,您可以获得单独的脚本,以便于调试.

直接使用Heroku上的连接资产提供服务的最大缺点是,每次更新客户端代码时都需要git push to Heroku,这会自动触发重启.我最终手动构建我的资产(使用手写笔和snockets),然后上传到S3.如果您不需要经常更新客户端代码,那么问题并不是那么大.

转载注明原文:Heroku上的Node.js:在开发中使用中间件,但在生产中使用静态资产? - 代码日志