配置 React 应用程序在生产环境中的启动方式

Configure how React app is started in production

create-react-appnpm 菜鸟,我在部署到生产环境时遇到了一些问题。当我启动我的应用程序时,我想启动一个特定的 js 文件,以及 运行 正常的 react-scripts start。所以在我的 package.json 中,我有以下内容。

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

当我 运行 npm start 时,效果很好,两个脚本都在本地和向上执行并且 运行ning.

我的粗略阅读似乎表明 npm start 只是为了开发。在生产中,将使用 build/ 文件夹并且...我无法弄清楚它是如何 运行。在本地测试,运行ning npm run build后,build/文件夹就做好了。然后 运行ning serve -s build,执行了一些操作,但不是我的 npm start 脚本。看起来只是react-scripts start。尝试部署到多个真实生产服务器(如 Firebase 和 Netlify)的行为方式相同。

那么生产构建究竟是如何开始的呢?以及如何将其配置为像我的开发版本一样运行。

我觉得我一定是误解了一些基本的东西,因为我在网上找不到任何解释,但我们将不胜感激。

如果您对我为什么会有这种奇怪的设置感兴趣,我正在尝试使用多人游戏服务器部署 boardgame.io

使用 npm start 的原因是您可以即时启动本地 Web 服务器并与 nodemon 和其他好东西配对,可以轻松查看对源的更改,就像它正在生产中。

npm build 将源代码转换为适合生产的轻量级延迟加载包。构建完成后,您可以使用 Web 服务器来托管 build/index.html 并从那里访问站点。你用什么来托管它取决于你(最常见的是 nginx 但你 可以 使用类似 apachenode 的东西,就像你暗示的那样与 serve -s build)。