reactjs - 配置 React 应用在生产环境中的启动方式
问题描述
create-react-app
和npm
菜鸟在这里,我在部署到生产时遇到了一些麻烦。当我启动我的应用程序时,我想启动一个特定的 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 。
解决方案
使用的原因npm start
是您可以即时启动本地 Web 服务器并与其他好东西配对,nodemon
可以轻松查看对源的更改,就像它在生产中一样。
npm build
将源代码转换为适合生产的轻量级延迟加载包。构建完成后,您可以使用 Web 服务器来托管build/index.html
和访问该站点。你用什么来托管它取决于你(最常见的是,nginx
但你可以使用类似apache
或node
类似你暗示的东西serve -s build
)。
推荐阅读
- mysql - CentOS 7 上的 MariaDB 拒绝读取一些更新的变量
- ansible - 获取变量的正确值
- python - 有没有办法可以列出这个清单?
- c++ - 在没有单例的情况下使用基于函数指针的操作系统抽象层
- apache-flink - FLINK:java.io.IOException:网络缓冲区数量不足
- excel - 从excel中的大数据表中提取报告表
- python - 在 rdkit 中处理 SMILES 数据时出现 python 参数错误
- laravel-4 - 无法使用 laravel 4.2 swiftmailer 随机连接 TLS 加密
- php - Woocommerce:在帐户下载中显示产品缩略图
- three.js - 对于threejs,3d对象不旋转低于400px分辨率(如iphone 6)