使用 pm2 在服务器上反应构建 运行
React build run on server using pm2
我已经使用
编译了我的 React 应用程序
react-scripts build
并且在App的根目录下生成了一个build\文件夹。
我正在 运行 使用
创建 build\ 文件夹
sudo serve -T -p 443 build/
这 运行 我的 React 应用程序在 HTTPS 上成功,因为我通过了 -T
。但是我需要 运行 我的应用程序永远使用任何可用的模块。我正在研究节点模块 forever & 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
.
@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
完成!
创建run.sh文件
在run.sh 文件
中输入以下命令
serve -s build
并保存。
然后运行这个命令。
sudo pm2 start run.sh --name app-name
使用下面的命令对我有用
首先构建您的 React 应用程序,然后在您的应用程序文件夹中点击此命令。
pm2 serve build/ 3000 --name "react-build" --spa
如果您愿意 运行 使用 pm2 进行 React 项目,请尝试 运行 下面的命令
pm2 start --name <app name<app name>> npm -- start
我已经使用
编译了我的 React 应用程序react-scripts build
并且在App的根目录下生成了一个build\文件夹。 我正在 运行 使用
创建 build\ 文件夹sudo serve -T -p 443 build/
这 运行 我的 React 应用程序在 HTTPS 上成功,因为我通过了 -T
。但是我需要 运行 我的应用程序永远使用任何可用的模块。我正在研究节点模块 forever & 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
.
@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
完成!
创建run.sh文件
在run.sh 文件
中输入以下命令serve -s build
并保存。
然后运行这个命令。
sudo pm2 start run.sh --name app-name
使用下面的命令对我有用
首先构建您的 React 应用程序,然后在您的应用程序文件夹中点击此命令。
pm2 serve build/ 3000 --name "react-build" --spa
如果您愿意 运行 使用 pm2 进行 React 项目,请尝试 运行 下面的命令
pm2 start --name <app name<app name>> npm -- start