2014-02-17 53 views
13

我正在使用Heroku作爲我的主要部署目標運行Node項目。在開發環境我使用咕嚕啓動Web服務器,但是在生產中我更喜歡直接與node appHeroku NODE_ENV環境變量

這裏啓動的應用程序是我的Procfile:

web: bin/web 

和Bin /網站:

#!/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 

第一個echo用於調試。 heroku日誌顯示:

app[web.1]: NODE_ENV= 

基本上,意思是NODE_ENV沒有設置。 (和應用程序與呼嚕聲,而不是node app開始)

docs說,「該NODE_ENV環境變量默認爲生產,但如果你願意,你可以重寫它」

我缺少什麼?

回答

28

不知道,如果你想通了這一點或沒有,但我有同樣的問題,並使用固定它:

heroku config:set NODE_ENV=production 

通過https://devcenter.heroku.com/articles/nodejs-support

祝你好運!

+0

你把這個放在你的procfile中嗎? –

+2

我是一個白癡,你在命令行運行它只是看起來類似於procfile,所以我很困惑。 –