CLI AWS Beanstalk продолжает развертывать сборку реакции / npm - PullRequest
0 голосов
/ 03 января 2019

У меня есть приложение реагирования и два экземпляра AWS Beanstalk: разработка и производство.Я пытаюсь развернуть сборку разработки указанного приложения React в среде разработки, а производственную сборку - в производственной среде.

Каждая среда настроена со своей переменной среды (URL-адрес API, который должен вызываться), поэтому вывод должен быть другим.Оба API-адреса работают при вызове напрямую через браузер, поэтому я знаю, что с ними это не проблема.

Я думал, что процесс развертывания в процессе разработки выглядит так: Для dev: npm start build> eb deploy -e development Дляprod: npm run build> eb deploy -e production

При открытии веб-страницы разработки все работает как положено: вызывается переменная env разработки и генерируется некоторый вывод.

Однако при открытииНа производственной веб-странице появляется сообщение об ошибке (из-за отсутствия переменной среды):

This screen is visible only in development. It will not appear if the app crashes in production. Open your browser’s developer console to further inspect this error.

Но я думал, что мое приложение только что упало в работе?Это ясно показывает, что я неправильно развернул производственную сборку.

Где я ошибся?

1 Ответ

0 голосов
/ 05 января 2019

После нескольких часов экспериментов выясняется, что Beanstalk запускает команду npm start по умолчанию при перезапуске приложения node.js или при развертывании новой версии.Изменение этого поведения возможно ( Конфигурация> Программное обеспечение> Изменить> команда узла ).

Временное решение (конечно, не идеальное) было:

  • установка для команды узла значения node server.js
  • установка экспресс-фрейма node.js
  • включение файла server.js в корневой каталог

server.js:

const express = require('express');
const path = require('path');
const app = express();

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

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

app.listen(8081);
  • построить файл локально с помощью npm run build
  • удалить build/ из .gitignore, чтобы он был включен в локальныйрепо
  • git commit -a (Делать не git push, если у вас нет для этого причин)

  • развернуть приложение снова черезeb deploy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...