React build run on server using pm2
You need to use a pm2
JSON config to run arbitrary binaries:
app.config.json
{
apps : [
{
name : "your-app",
script : "npx",
interpreter: "none",
args: "serve -p 8443 -T"
}
]
}
To start:
pm2 start app.config.json
interpreter: "none"
tells pm2
not to treat the script like a JavaScript file when executing, and instead to treat it like an ordinary binary.
If you have a serve
binary in the same directory as the app config, you can execute serve
directly instead of npx
.
Use below command it worked for me
first build your react application and then hit this command inside your application folder .
pm2 serve build/ 3000 --name "react-build" --spa
@bgran provided a nice solution. As an alternative, I dare to suggest you can add this deploy to your script in package.json
"deploy": "pm2 start ./server.sh --name yourAppName",
Then in the same directory as the package.json, create an executable server.sh:
echo "Serving yourAppName!"
serve -s build
Don't forget to make server.sh an executable by running:
chmod +x server.sh
Now it's party time! Deploy your app by running
npm run deploy
Done!