Окончательное развертывание проекта React

#node.js #reactjs #express

#node.js #reactjs #экспресс

Вопрос:

Я новичок в NodeJS и пришел из мира Java, но за последние 3 месяца я сделал неплохую разработку. Я использую ExpressJS и REACTJ в своем первом проекте, теперь во время разработки мы используем 2 http-сервера: 1 для серверного приложения ExpressJS, а другой для интерфейсного приложения ReactJS.

Теперь это способ, которым мы должны развертывать на производстве, или мы можем объединить его как 1 приложение и развернуть на 1 http-сервере, прослушивающем порт 80.

с уважением

Ответ №1:

Развертывание рабочего приложения React в Heroku

1. Создайте приложение React

 npm create-react-app heroku-deploy-test
cd heroku-deploy-test
  

введите описание изображения здесь

2. Создайте экспресс-сервер JS для обслуживания рабочей сборки

 //server.js
const express = require('express');
const path = require('path');

const app = express();

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

app.get('/*', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

const port = process.env.PORT || 8080;

app.listen(port);
  

В вашем package.json файле измените сценарий запуска на следующий: start:
"node server.js"

3. Развертывание в Heroku

Если у вас еще нет учетной записи Heroku, создайте ее здесь: https://signup.heroku.com / В командной строке выполните следующие действия: heroku login

Вам нужно будет ввести свои учетные данные heroku в терминал. После успешного ввода учетных данных heroku выполните следующие действия в своем терминале, чтобы создать новое развернутое приложение:

 heroku create heroku-deploy-test
  

(Замените heroku-deploy-test на свое собственное имя приложения.)

Затем отправьте сборку своего приложения в heroku со следующим git в вашем терминале:

 git init 
git add . 
git commit -m "initial commit"
heroku git:remote -a heroku-deploy-test
git push heroku master
  

Эти команды устанавливают ваши зависимости, инициализируют git и подключают ваш репозиторий к удаленному репозиторию, размещенному на Heroku.

Примечание: если вы уже инициализировали свой git перед запуском heroku create [app-name] , вам не нужно запускать heroku git:remote -a [app-name].

запустите heroku open , и ваше приложение для разработки откроется в вашем браузере по умолчанию. Если вам нужна производственная сборка, я думаю, вы уже знаете, что делать. -> Создайте производственную сборку вашего React приложения. Создайте соответствующий .gitignore файл, чтобы были развернуты только соответствующие файлы.

ВАЖНО: если у вас уже был .gitignore файл, убедитесь, что в нем нет этой строки /build 🙂

Могу ли я также предложить прочитать этот блог! Удачного дня!

Комментарии:

1. Спасибо, Бигга, ты объясняешь мне, как развернуть React как 1 приложение и Express как другое приложение. Где, как и в моем случае, оба (ExpressJS [серверная часть] и ReactJS [интерфейс]) являются частью 1 приложения. Итак, как я могу объединить его в одно приложение и развернуть. с уважением

2. @SaifuddinSyed — ReactJS — это фреймворк для внешнего интерфейса, который работает в браузере. Express — это серверная платформа, которая работает поверх среды NodeJS. Это две очень разные вещи, которые работают совершенно по-разному. Вот почему у нас есть такие термины, как «бэкэнд» и «интерфейс». Если вы хотите, вы можете развернуть свое приложение React с нулевыми настройками, например, на Heroku (я предлагаю прочитать блог, прикрепленный к моему ответу), но если вы хотите иметь API NodeJS / Express, который работает с вашим приложением React, ну, приятель, это совсем другая игра. Итак, короткий ответ — НЕТ.

3. @SaifuddinSyed Могу ли я предложить обновить ваш вопрос с лучшим объяснением того, что именно вы хотите, и немного кода не повредит. Приветствия!

4. Вы все равно можете развернуть их на том же хосте. Таким образом, даже если у вас будет Express приложение и React приложение, они оба могут находиться на одном сервере (просто разные порты) и взаимодействовать друг с другом. Установите react router 4 и убедитесь, что маршруты верны, и дело сделано. Просто сделайте так, чтобы ваше Express приложение обслуживалось index.html из вашего React приложения src или папки сборки. Как я показал вам выше в своем ответе. Надеюсь, вы поняли суть. Удачного дня.