Я прошел через множество руководств, в которых предлагается создать прокси-сервер в package.json и подключить интерфейс и серверную часть вашего приложения. Но это не сработает, когда вы собираетесь работать в продакшене, потому что вы, очевидно, не будете использовать там localhost.

Итак, как нам развернуть приложение, которое полностью построено (интерфейс и бэкэнд), но которое до сих пор работало на локальном хосте и, наконец, готово к производству. ХОРОШИЙ ВОПРОС!! Радуйтесь, что вы оказались здесь, ведь я вам именно это и покажу. Но имейте в виду, что я использую, вы изначально использовали приложение create-response-app, поскольку команды связаны с ним (я сделаю другую статью для babel).

Сначала перейдите в свой проект реакции и выполните команду

npm запустить сборку

Это сделает оптимизированную сборку вашего приложения для реагирования, а также сделает из него статические активы. Затем переместите эту сборку на свой сервер.

Каталог файлов должен выглядеть примерно так

Я использую экспресс, и в нем для обслуживания статических файлов мы используем команду

app.use(express.static(path.join(__dirname, 'build')));

Скопируйте и вставьте эту команду в свой app.js.

Теперь последний шаг - обслуживание файла index.html из пакета при поступлении первоначального запроса.

app.get(‘/’, (req, res) => {
res.send(“index”);
});

Вот и все, теперь все готово. Он готов к развертыванию в любом месте (достаточно серверной части).

Если вы особенно хотите развернуть его на heroku, и вы также хотите автоматизировать выполнение команды сборки, сохраните все приложение реакции в папке клиента и в сценариях package.json типа server в следующем сценарии

"heroku-postbuild": "cd client && npm install && npm run build"

Теперь вам просто нужно git push to heroku, и он позаботится о создании приложения для реагирования и всего остального, но теперь, когда мы изменили структуру папок проекта в app.js сервера, измените следующую строку кода '' `

app.use(express.static(path.join(__dirname, 'client/build')));