我已经使用
编译了我的反应应用程序react-scripts build
它在App的根目录中生成了一个build \文件夹。 我正在使用
运行build \文件夹sudo serve -T -p 443 build/
这会在https上成功运行我的React应用,因为我正在传递 -T 。但我需要使用任何可用的模块永远运行我的应用程序。 我正在研究节点模块永远&的 PM2 我正在尝试以下列方式使用pm2:
sudo pm2 serve -T -p 443 build/
It throws:
error: unknown option `-T'
当我使用时:
sudo pm2 serve -p 443 build/
It works on console but I am not able to access my app from 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
有人可以帮我吗? 或者,如果有任何其他方式可以永久地运行您的反应应用程序。
提前致谢
答案 0 :(得分:5)
您需要使用PendingIntent
JSON配置来运行任意二进制文件:
resultCode
PendingIntent
开始:
pm2
app.config.json
告诉{
apps : [
{
name : "your-app",
script : "npx",
interpreter: "none",
args: "serve -p 8443 -T"
}
]
}
在执行时不要将脚本视为JavaScript文件,而应将其视为普通二进制文件。
如果您在与app config相同的目录中有pm2 start app.config.json
二进制文件,则可以直接执行interpreter: "none"
而不是pm2
。
答案 1 :(得分:1)
使用以下对我有用的命令
首先构建您的react应用程序,然后在应用程序文件夹中单击此命令。
pm2 serve build/ 3000 --name "react-build" --spa
答案 2 :(得分:0)
@bgran提供了一个很好的解决方案。或者,我敢建议您可以将此 deploy 添加到package.json
中的脚本中"deploy": "pm2 start ./server.sh --name yourAppName",
然后在与package.json相同的目录中,创建可执行文件 server.sh :
echo "Serving yourAppName!"
serve -s build
不要忘记通过运行以下命令使server.sh成为可执行文件:
chmod +x server.sh
现在是聚会时间!通过运行
来部署您的应用npm run deploy
完成!
答案 3 :(得分:0)
创建 run.sh 文件
在run.sh文件中放入以下命令
提供-s版本
并保存。
然后运行此命令。
sudo pm2 start run.sh --name应用程序名称
答案 4 :(得分:0)
如果您愿意使用 pm2 运行 React 项目,请尝试运行以下命令
pm2 start --name <app name<app name>> npm -- start