Heroku NODE_ENV环境变量

时间:2014-02-17 14:42:28

标签: node.js heroku

我正在运行一个Node项目,Heroku作为我的主要部署目标。在开发环境中我使用grunt来启动Web服务器,但是在生产中我更喜欢使用node app直接启动应用程序

这是我的Procfile:

web: bin/web

和bin / 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

第一个echo用于调试。 heroku日志显示:

app[web.1]: NODE_ENV=

基本上,意味着没有设置NODE_ENV。 (应用程序以grunt而不是node app开始)

docs说“NODE_ENV环境变量默认为生产,但如果您愿意,可以覆盖它”

我错过了什么?

1 个答案:

答案 0 :(得分:33)

不确定你是否弄清楚这一点,但我遇到了同样的问题并使用以下方法修复:

heroku config:set NODE_ENV=production

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

祝你好运!