2014-02-17 11 views
13

Ich betreibe ein Node-Projekt mit Heroku als Haupteinsatzziel. Ich Grunzt in dev Umgebung bin mit dem Web-Server zu starten, aber in der Produktion ziehe ich die App direkt starten mit node appHeroku NODE_ENV Umgebungsvariable

Hier ist mein procfile:

web: bin/web 

Und ist/web:

#!/bin/sh                  
echo "NODE_ENV=" $NODE_ENV 
if [ "$NODE_ENV" == "production" ]; then 
    echo "Starting the server with node app" 
    node app 
else 
    echo "Starting the server using grunt" 
    grunt 
fi 

Die erste echo ist zum Debuggen. Heroku-Protokoll zeigt:

app[web.1]: NODE_ENV= 

Grundsätzlich bedeutet NODE_ENV nicht festgelegt. (Und die App startet mit Grunzen statt node app)

Die docs sagen, dass „Die Umwelt NODE_ENV Variable standardmäßig auf die Produktion, aber Sie können es überschreiben, wenn Sie es wünschen“

Was bin ich?

Antwort

28

Nicht sicher, ob Sie diese oder nicht gedacht, aber ich hatte das gleiche Problem und fixiert es mit:

heroku config:set NODE_ENV=production 

Via https://devcenter.heroku.com/articles/nodejs-support.

Viel Glück!

+0

Haben Sie das in Ihr Procfile geschrieben? –

+2

Ich bin ein Idiot das etwas, was Sie in der Befehlszeile ausführen, sieht es ähnlich wie procfile, so dass ich verwirrt war. –

Verwandte Themen