Estoy trabajando en una aplicación web, alojando el código fuente en Github y ejecutando la aplicación en Heroku. Todo funciona bien, pero tengo un problema que no puedo entender. Antes de implementar mi código, ejecuto algunas secuencias de comandos para optimizar el código (minificación, concatenación de archivos, etc.). La aplicación heroku solo usa la versión optimizada de la aplicación.Estrategias de implementación de Heroku + Github
Básicamente, tengo dos carpetas: dev
y production
. Dev
contiene el código fuente que escribo, production
es producido por mis scripts de compilación (utilizo grunt y requirejs). Actualmente, ambas carpetas están en mi repositorio de Git y ambas se envían a Github y Heroku. Lo que preferiría es tener solo dev
en Github y solo production
en Heroku. Leí algunos artículos sobre cómo configurar diferentes ramas para Heroku, como described in this blog. ¿Podría configurar una rama de producción y solo tener la carpeta production
ahí mientras mantengo la carpeta dev
en mi rama principal? ¿O necesitaría repositorios separados?
¿Alguien ha intentado algo similar? Supongo que esto no es algo fuera de lo común.
Esto es lo que estoy haciendo ahora ... Creé mi propio buildpack personalizado (ver https://github.com/mbuchetics/heroku-buildpack-nodejs-grunt) que usa Grunt para compilar la carpeta de producción en cada implementación. Funciona bien y puedo mantener todo el material de producción fuera del git repo. – slurmomatic
Otra característica que he usado en el buildpack estándar es compatible a través de NPM. Puede agregar una secuencia de comandos '" postinstall "' a su 'paquete.json' y ejecutar código arbitrario de esta manera. https://npmjs.org/doc/scripts.html – mikegradek