使用pm2在服务器上运行React构建

时间:2018-05-02 18:10:28

标签: reactjs pm2 forever serve react-scripts

我已经使用

编译了我的反应应用程序
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

有人可以帮我吗? 或者,如果有任何其他方式可以永久地运行您的反应应用程序。

提前致谢

5 个答案:

答案 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