Ответ 1
Не уверен, что вы это поняли или нет, но у меня была такая же проблема, и я исправил ее, используя:
heroku config:set NODE_ENV=production
Через https://devcenter.heroku.com/articles/nodejs-support.
Удачи!
Я запускаю проект Node с Heroku в качестве основной цели развертывания. В среде dev я использую grunt для запуска веб-сервера, однако в производстве я предпочитаю запускать приложение напрямую с помощью 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
- это отладка. Журнал героя показывает:
app[web.1]: NODE_ENV=
В принципе, значение NODE_ENV не задано. (и приложение начинается с ворчания вместо node app
)
Документы говорят, что "переменная среды NODE_ENV по умолчанию имеет значение для производства, но вы можете ее переопределить, если хотите"
Что мне не хватает?
Не уверен, что вы это поняли или нет, но у меня была такая же проблема, и я исправил ее, используя:
heroku config:set NODE_ENV=production
Через https://devcenter.heroku.com/articles/nodejs-support.
Удачи!