Не уверен, как он может работать в Safari и IE, а не в Chrome, но понимаю, что сервер Create-React-App не существует в рабочей среде.
Если вы развертываете в Heroku, все меняется. Перед развертыванием в производство в Heroku вы должны создать свой проект React. Когда вы создаете свой проект React, CRA берет все файлы JavaScript и CSS, запускает Webpack и Babel над всеми этими файлами и сохраняет окончательную сборку в папке build/
.
Когда пользователь посещает ваше приложение в Heroku, вы запускаете только API Node / Express, и оно отправляет пользователя обратно в файл HTML, а недавно созданный файл JavaScript помещается в папку build/
.
npm run build
- это то, что вы запускаете перед развертыванием в производство.
Поэтому, когда вы переходите в производственную среду, вам просто нужно создать приложение, зафиксировать его, развернуть на Heroku и оставить его на сервере Express для обслуживания всех различных файлов JavaScript.
Так что вам нужно беспокоиться только о прокси для вашей среды разработки, потому что CRA не существует внутри производства.
Вы должны использовать относительные маршруты в вашем приложении React.
Вся идея прокси-сервера заключается в том, чтобы перенаправить запросы с localhost:3000/auth/google
на localhost:5000
, потому что вы используете два сервера в разработке, поэтому запрос API должен быть прокси, но при развертывании вы больше не используете CRA, CRA существует только для использования в разработке, чтобы помочь нам создавать приложения React хорошего качества.
Локальные хосты 3000 и 5000 прекращают свое существование, когда вы, по крайней мере, внедряетесь в производство в Heroku.