reactjs - 使用 pm2 在服务器上运行 React 构建
问题描述
我已经编译了我的反应应用程序
react-scripts build
它在 App 的根目录下生成了一个 build\ 文件夹。我正在运行 build\ 文件夹使用
sudo serve -T -p 443 build/
自从我通过-T
. 但是我需要使用任何可用的模块来永远运行我的应用程序。我一直在研究节点模块和pm2。我正在尝试通过以下方式使用 pm2:
sudo pm2 serve -T -p 443 build/
它抛出:
error: unknown option `-T'
当我使用时:
sudo pm2 serve -p 443 build/
它适用于控制台,但我无法从 URL 访问我的应用程序
[ec2-user@ip-10-XXX-XX-XXX UI]$ sudo pm2 serve -p 443 build/
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/local/lib/node_modules/pm2/lib/API/Serve.js in fork_mode (1 instance)
[PM2] Done.
[PM2] Serving /var/www/html/UI/build on port 8080
┌─────────────────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├─────────────────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ static-page-server-8080 │ 0 │ fork │ 26609 │ online │ 0 │ 0s │ 2% │ 21.7 MB │ root │ disabled │
└─────────────────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
有人可以帮我弄这个吗?或者,如果有任何其他方式可以永远在生产环境中运行您的 react 应用程序。
解决方案
您需要使用pm2
JSON 配置来运行任意二进制文件:
app.config.json
{
apps : [
{
name : "your-app",
script : "npx",
interpreter: "none",
args: "serve -p 8443 -T"
}
]
}
开始:
pm2 start app.config.json
interpreter: "none"
告诉pm2
在执行时不要将脚本视为 JavaScript 文件,而是将其视为普通二进制文件。
serve
如果您在与应用程序配置相同的目录中有二进制文件,则可以serve
直接执行而不是npx
.
推荐阅读
- javascript - vue.js 使用来自另一个输入的输入更新输入框
- c++ - std:vector 具有不同类型(相同类型但具有不同模板参数)
- c++ - How does std::greater<> wоrk in a set?
- python - 我的 OpenCV 实时网络摄像头演示没有显示准确的情绪
- video - 如果其中一个视频带有 FFmpeg 过滤器,如何合并两个视频?
- asp.net - 通过代码优先方法创建数据库的问题
- r - ggplot2与ifelse的颜色关联问题
- gitlab - 使用通配符证书与 helm 一起安装的 gitlab 注册表返回 x509
- c# - 如何在按钮文本上显示文本文件中的文本
- java - 使用插入排序时如何将更大的单词放在末尾?