React App Axe ios маршрут, не узнаваемый после развертывания в Heroku - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть приложение, основанное на реакции, и express.

  1. Несмотря на то, что я указал запустить порт heroku или мой локальный порт, если я должен был запустить его локально, я получаю ошибка, говорящая, что у моего axios.post('/',...) есть POST http://localhost:3000/ 404 (Not Found), где приложение все еще использует 3000 вместо 8000.
const port = process.env.PORT || 8000
app.listen(port, () => {
    console.log('App running on port ', port);
});

module.exports = app;
Может ли кто-то также посоветовать мне, что я должен положить в свой пакет. json, чтобы я мог запускать свое приложение как на героку, так и локально? И что будет команда вместо npm start? Вот мой текущий каталог проекта и пакет. json:
-> index.js
  -> src
    -> containers
      -> App.js (My react frontend)
    -> server
      -> server.js (My express backend)
  "scripts": {
    "start": "node src/server/server.js",
    // "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

1 Ответ

0 голосов
/ 20 апреля 2020

Первый вопрос:

Я предполагаю, что вы используете прокси. Причина, по которой он продолжает указывать на localhost: 3000, заключается в том, что у вас все еще есть кеш. Чтобы очистить кеш, вам нужно сначала удалить папку node_modules и package-lock. json в вашем приложении реагирования. Второй npm снова установите все зависимости в ваше приложение реагирования и перезапустите терминал реагирования. После этого ваш прокси должен работать.

Второй вопрос:

Я не рекомендую использовать пакет вашей реакции. json. Он предпочитает использовать пакет вашего сервера. json, потому что он не будет вмешиваться в сценарий реакции запуска и в любом случае предполагается, что ваш сервер будет обслуживать содержимое сборки c. Простой и хороший метод - поместить всю папку на вашем сервере в каталог root.

Не многие люди говорят об этом, но есть порядок, по которому ваши герои запускают сценарии

  1. heroku-prebuild script => Запускается до установки зависимостей heroku
  2. npm install => Установка пакетов в вашем пакете. json
  3. heroku-postbuild script => Запускается после установки heroku зависимости
  4. start script => Запускается после выполнения шага 1,2,3

Обычно люди используют сценарий heroku-postbuild для запуска своих npm run build

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