Веб-процессу не удалось привязаться к $ PORT - PullRequest
0 голосов
/ 04 июня 2018

У меня есть реактивный проект, загруженный с помощью CRA Cli.У меня есть Трэвис для CI и развертывания на Heroku.Проект работает уже около месяца.Последняя сборка была около 25 дней назад и прошла.Сегодня, когда я посещаю это приложение, оно ломается.Когда я перестраиваюсь и повторно внедряю, перестройка работает, развертывание тоже в какой-то степени и ошибка

Ошибка R10 (время загрузки) -> Веб-процессу не удалось привязаться к $ PORT в течение 60 секунд после запуска

С момента последнего нажатия 25 дней назад я слил что-нибудь в master, поэтому я совершенно уверен, что нет кода, который попал в систему контроля версий и испортил все.

Это мой package.json (только соответствующие части)

"dependencies": {
"axios": "^0.18.0",
"leaflet": "^1.3.1",
"lodash": "^4.17.5",
"npm-run-all": "^4.1.2",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-leaflet": "^1.9.0",
"react-redux": "^5.0.7",
"react-scripts": "1.1.1",
"react-tabs": "^2.2.1",
"react-tabs-redux": "^2.0.1",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0",
"socket.io-client": "^2.1.0",
"thunk": "0.0.1"
},
"scripts": {
 "start": "npm-run-all -p watch-css start-js",
 "build": "npm-run-all build-css build-js",
 "start-js": "react-scripts start",
 "build-js": "react-scripts build",
 "test": "react-scripts test --env=jsdom",
 "test-ci": "CI=true react-scripts test --env=jsdom --ci",
 "eject": "react-scripts eject",
 "build-css": "node-sass-chokidar src/ -o src/ --quiet",
 "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
"lint": "./node_modules/.bin/eslint src/**/*.js",
"prettier": "prettier --write --tab-width=2 --single-quote=true \"src/**/*.{js,scss}\""
},

А это мой index.js (только соответствующие части)

if (process.env.NODE_ENV === 'development') {
  middleware = [logger];
}
const store = createStore(
  rootReducer,
  composeWithDevTools(applyMiddleware(thunk, ...middleware))
);

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

И Procfile

web: npm i -g serve && npm run build && serve -s build

И это последний статус сборки enter image description here

Затем логи от Heroku enter image description here

Из логов,там написано

ИНФОРМАЦИЯ: Прием соединений на http://localhost:3000

Вопросы

  1. Что я здесь не так делаю?
  2. Почему подключения принимаются на локальном хосте, но у меня запущен рабочий пакет?
  3. Как это исправить?

1 Ответ

0 голосов
/ 04 июня 2018

Пожалуйста, проверьте код создания сервера, который вы пропустили process.env.PORT

Heroku динамически назначает порт, который он извлекает из переменной env.Ваш код должен быть таким:

.listen(process.env.PORT || 3000)
...