web-dev-qa-db-fra.com

React build run on server using pm2

J'ai compilé mon application React en utilisant

react-scripts build

Et il a généré un dossier build\dans le répertoire racine de l'application. J'exécute le dossier build\en utilisant

Sudo serve -T -p 443 build/

Cela exécute mon React app avec succès sur https depuis que je passe - T. Mais je devais exécuter mon application pour toujours en utilisant l'un des modules disponibles. Je cherchais dans modules de nœuds pour toujours & pm2 J'essaie d'utiliser pm2 de la manière suivante:

Sudo pm2 serve -T -p 443 build/
It throws:
error: unknown option `-T'

et quand j'utilise:

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

Quelqu'un peut il m'aider avec ça? Ou s'il existe un autre moyen d'exécuter votre application React en production pour toujours.

Merci d'avance

3
RDoonds

@bgran a fourni une bonne solution. Comme alternative, j'ose suggérer que vous pouvez ajouter ceci deploy à votre script dans package.json

"deploy": "pm2 start ./server.sh --name yourAppName",

Ensuite, dans le même répertoire que package.json, créez un exécutable server.sh:

echo "Serving yourAppName!"
serve -s build

N'oubliez pas de faire de server.sh un exécutable en exécutant:

chmod +x server.sh

Maintenant c'est la fête! Déployez votre application en exécutant

npm run deploy

Terminé!

1
Nditah