web-dev-qa-db-ja.com

React pm2を使用してサーバーでビルドを実行

私は私の反応アプリを使用してコンパイルしました

react-scripts build

そして、Appのルートディレクトリにbuild \フォルダーを生成しました。私はbuild \フォルダを実行しています

Sudo serve -T -p 443 build/

これは私のReactアプリがhttpsで正常に実行されるので-Tを渡すためですが、使用可能なモジュールのいずれかを使用してアプリを永久に実行する必要がありました。ノードモジュールforeverpm2 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

誰かがこれを手伝ってくれる?または、リアクションアプリを本番環境で永久に実行する他の方法がある場合。

前もって感謝します

3
RDoonds

@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

できた!

1
Nditah