Реактивировать сборку на сервере, используя pm2 - PullRequest
0 голосов
/ 02 мая 2018

Я скомпилировал свое приложение реакции, используя

react-scripts build

И он сгенерировал папку build \ в корневом каталоге приложения. Я использую папку build \, используя

sudo serve -T -p 443 build/

Это успешно запускает мое приложение React по https, так как я передаю -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

Может кто-нибудь помочь мне с этим? Или, если есть какой-либо другой способ запустить приложение реакции на производстве навсегда.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

@ 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

Готово!

0 голосов
/ 03 мая 2018

Для запуска произвольных двоичных файлов вам необходимо использовать pm2 JSON config:

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.

...