Heroku NODE_ENV环境变量

Kon*_*n K 16 heroku node.js

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

这是我的Procfile:

web: bin/web
Run Code Online (Sandbox Code Playgroud)

和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
Run Code Online (Sandbox Code Playgroud)

第一个echo是调试.heroku日志显示:

app[web.1]: NODE_ENV=
Run Code Online (Sandbox Code Playgroud)

基本上,意思是没有设置NODE_ENV.(并且应用程序以grunt开头而不是node app)

文件说,"该NODE_ENV环境变量默认为生产,但如果你愿意,你可以重写它"

我错过了什么?

Chr*_*ton 36

不确定你是否想出来,但我有同样的问题,并使用以下方法修复:

heroku config:set NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)

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

祝好运!

  • 我是一个白痴这个你在命令行运行它只是看起来类似procfile所以我很困惑. (3认同)