Tengo una API express que estoy alojando en Heroku . Creé dos proyectos: un punto de proyecto en mi sucursal maestra (Prod) y el otro en mi sucursal de desarrollo (Dev).
Tengo dos scripts en mi paquete JSON:
"scripts": { "devStart": "export NODE_ENV=development && nodemon server.js", "start": "export NODE_ENV=production && node server.js" } ¿Cómo puedo hacer que la rama de desarrollo ejecute "DevStart" y Master ejecute "start". Actualmente, Prod funciona bien, ya node start es el script predeterminado.
Entiendo que puedo poner comandos en mi procfile , sin embargo, dado que tanto Dev como Prod usan la misma base de código, necesitaría cambiar esto con cada confirmación. ¿Hay una forma dinámica de hacer esto?
Ok, esta podría no ser la forma correcta, pero así es como lo hice.
He visto que puedes configurar la variable NODE_ENV para la aplicación Heroku usando la terminal:
heroku config:set NODE_ENV=development --app {app-name}
Sin embargo, mi paquete JSON estaba sobrescribiendo esto cuando se implementó la aplicación.
"scripts": { "devStart": "export NODE_ENV=development && nodemon server.js", "start": "export NODE_ENV=production && node server.js" },Lo cambié a:
"scripts": { "localStart": "export NODE_ENV=development && nodemon server.js", "start": "node server.js" }, Esto ahora resuelve el problema. No es necesario el Procfile ni configurar variables de entorno dentro de Heroku.
En Heroku tengo dos aplicaciones, una para producción en la que no cambio la variable NODE_ENV ya que está predeterminada en producción, y otra para desarrollo, en la que cambio la variable NODE_ENV a 'Desarrollo'.
Cada aplicación está conectada a una rama diferente dentro de la misma base de código (Desarrollo (Desarrollo) y Maestro (Producción)). Cualquier implementación en cualquiera de las ramas provocará una reconstrucción utilizando la variable NODE_ENV correcta para cada rama respectiva.