2012-02-10 14 views
5

Algunos idiomas intermedios, como Stylus, ofrecen dos maneras de compilarse: a través del middleware connect o mediante la herramienta CLI. El último puede generar activos compilados estáticos (es decir, archivos .css).Node.js en Heroku: utiliza middleware en desarrollo, pero activos estáticos en producción?

Así que quiero usar el middleware en modo de desarrollo, pero los activos estáticos en la producción. Sé que puedo usar app.configure('developmen'...) para preguntar express (no) para usar algunos middlewares en modo de desarrollo.

En un entorno IaaS, como Amazon EC2, puedo ejecutar un simple script de shell para volver a compilar automáticamente todos mis recursos. Pero ¿qué hay de PaaS, específicamente Heroku? ¿Cómo puedo saber dónde está mi .styl y dónde debe generarse el .css?

Respuesta

0

Es posible que desee echar un vistazo a https://github.com/adunkman/connect-assets. Almacena en caché los archivos javascript o css creados (tiene soporte integrado para stylus) si lo pasa build:true.

Puede ignorar los snockets (sprockets-como javascript include system) si no está interesado, aunque me gusta usarlo. #= require_tree app e incluye todos los archivos js en ese directorio. Y en desarrollo, obtiene secuencias de comandos separadas para facilitar la depuración.

La desventaja más importante de servir directamente con los recursos de conexión en Heroku es que debes enviar un push a Heroku para cada actualización del código del cliente, lo que automáticamente desencadena un reinicio. Terminé construyendo manualmente mis activos (con stylus y snockets) y luego cargándolo a S3. Si no necesita actualizar el código del cliente a menudo, no es un gran problema.

0

Puede echar un vistazo a express-cdn, que cargará sus activos a S3 al iniciar el servidor.

Lo que terminé haciendo fue registrarme en CloudFlare, y descubrí que no era tan rápido como usar CloudFront, pero fue muy fácil de configurar y funciona mejor que servir archivos de activos desde mi banco de pruebas.

Cuestiones relacionadas