Переход с Heroku на AWS с использованием React - PullRequest
0 голосов
/ 14 апреля 2019

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

Я сейчас пытаюсь использовать Elastic Beanstalk для загрузки моего кода (сервер и клиент). Процесс кажется довольно простым, однако, когда я загружаю свой файл .zip и внедряю, я получаю следующую ошибку в журнале событий:

Не удалось найти package.json. Node.js может иметь проблемы с запуском. Убедитесь, что package.json допустим или поместите код в файл с именем server.js или app.js.

У меня в папке zip есть файл package.json, поэтому я не совсем уверен, что здесь происходит. Любой совет по этому вопросу будет полезен.

Вот содержимое моего package.json:

{
  "name": "beer",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:5000",
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.2.12",
    "@fortawesome/free-solid-svg-icons": "^5.6.3",
    "@fortawesome/react-fontawesome": "^0.1.3",
    "@material-ui/core": "^3.8.1",
    "@material-ui/icons": "^3.0.1",
    "aws-sdk": "^2.422.0",
    "axios": "^0.18.0",
    "bcrypt": "^3.0.4",
    "body-parser": "^1.18.3",
    "cookie-session": "^2.0.0-beta.3",
    "dotenv": "^4.0.0",
    "express": "^4.16.4",
    "material-ui-rating": "^2.0.0",
    "passport": "^0.4.0",
    "passport-local": "^1.0.0",
    "pg": "^7.8.0",
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-redux": "^6.0.0",
    "react-router-dom": "^4.3.1",
    "react-scripts": "2.1.2",
    "redux": "^4.0.1",
    "redux-logger": "^3.0.6",
    "redux-saga": "^0.16.2",
    "session-middleware": "^1.0.2",
    "sweetalert": "^2.1.2"
  },
  "scripts": {
    "start": "node server/server.js",
    "client": "react-scripts start",
    "server": "nodemon --watch server server/server.js",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

И структура файла внутри моего почтового индекса:

--beer
  -build
  -nodemodules
  -package.json
  -public
    -index.html
    -manifest.json
  -server
    -server.js
    -modules
    -routes
  -src
    -index.js
    -components
      -App
        -App.js
      -redux
        -reducers
          -index.js
        -sagas
          index.js

1 Ответ

1 голос
/ 15 апреля 2019

При развертывании в Elastic Beanstalk с zip-файлом вы должны убедиться, что ваш zip не содержит каталог контейнера верхнего уровня . В вашем случае ваш каталог beer/ не может быть включен.

В macOS или Windows вы можете выбрать содержимое каталога beer/ и сжать его . Если вы загрузите новый zip-архив без каталога верхнего уровня, Elastic Beanstalk сможет найти ваш файл package.json и правильно развернуть приложение.

...