首页 > 解决方案 > 配置 React 应用在生产环境中的启动方式

问题描述

create-react-appnpm菜鸟在这里,我在部署到生产时遇到了一些麻烦。当我启动我的应用程序时,我想启动一个特定的 js 文件,并运行正常的react-scripts start. 所以在我的package.json,我有以下。

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

当我运行时npm start,它运行良好,两个脚本都在本地执行并启动并运行。

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

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

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

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

标签: reactjsnpmcreate-react-app

解决方案


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

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


推荐阅读