Настройте, как приложение React запускается в производстве - PullRequest
1 голос
/ 18 апреля 2020

create-react-app и npm noob здесь, и у меня возникли некоторые проблемы с развертыванием в производство. Когда я запускаю свое приложение, я хочу запустить указанный файл c js, а также запустить обычный react-scripts start. Так что в моем package.json у меня есть следующее.

"scripts": {
  "start": "node -r esm src/server.js & react-scripts start",
  ...
}

Когда я запускаю npm start, он отлично работает, оба сценария выполняются локально и работают.

Мой краткий обзор чтение, похоже, указывает на то, что npm start только для разработки. В производстве будет использоваться папка build/ и ... я не могу понять, как она работает. Локальное тестирование, после запуска npm run build, создается папка build/. И затем запускается serve -s build, что-то выполняется, но это не мой npm start скрипт. Похоже, это просто react-scripts start. Попытка развертывания на нескольких реальных производственных серверах, таких как Firebase и Netlify, ведет себя одинаково.

Итак, как именно начинается сборка? И как я могу настроить его так, чтобы он вел себя как моя сборка для разработки.

Мне кажется, что я неправильно понимаю что-то фундаментальное, потому что не могу найти никакого объяснения в Интернете, но любая помощь будет признательна.

Если вам интересно, почему именно у меня такая странная настройка, я пытаюсь развернуть boardgame.io с многопользовательским сервером.

1 Ответ

1 голос
/ 18 апреля 2020

Причина использования npm start заключается в том, что вы можете запустить локальный веб-сервер на лету и в сочетании с nodemon и другими вкусностями, изменения в источнике можно легко просмотреть, как если бы они были в производстве.

npm build переносит источник в легкий ленивый загрузочный комплект, пригодный для производства. После завершения сборки вы используете веб-сервер для размещения build/index.html и доступа к сайту оттуда. То, что вы используете для размещения, зависит от вас (чаще всего nginx, но вы могли бы использовать что-то вроде apache или node, как вы намекаете на serve -s build).

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