Вы действительно не должны использовать dev-server, чтобы попытаться запустить ваше приложение в работе. Я бы накатил простой сервер Express и использовал его для развертывания вашего приложения. Вы можете настроить это очень быстро:
npm i -s express
Затем создайте файл server.js на верхнем уровне структуры вашего приложения.
Поместите этот код в файл server.js:
const express = require('express')
const app = express()
const path = require('path')
const port = process.env.PORT || 3001
app.use('/', express.static(path.join(__dirname, 'public')))
app.listen(port, () => console.log("Listening on Port", port))
По сути, это просто настраивает ваш сервер, а затем показывает, где найти страницу index.html, которую вы используете для загрузки приложения реагирования и отправки его в браузер. Если ваша установка веб-пакета выводит файл index.html в папку, отличную от «public», просто поместите имя этой папки, в которое я поместил «public», после «__dirname».
Теперь вам просто нужно создать приложение.
Если вы используете веб-пакет, это так же просто, как настроить скрипт build в вашем package.json:
"build": "webpack -p"
Затем убедитесь, что Heroku знает, как использовать вашу сборку с другим сценарием:
"heroku-postbuild": "npm run build"
Наконец, установите скрипт запуска для запуска вашего сервера (для этого Heroku по умолчанию использует имя start):
"start": node server.js
Итак, ваши скрипты package.json должны выглядеть так:
"scripts": {
"dev-server": "webpack-dev-server --open"
"start": "node server.js",
"build": "webpack -p",
"heroku-postbuild": "npm run build"
}
Теперь, если вы нажмете на Heroku, он должен работать без проблем.