Как запустить npm serve с использованием forever?

#node.js #forever #shipitjs

#node.js #навсегда #shipitjs

Вопрос:

Моя конечная цель — автоматизировать мою разработку с помощью Shipit. Я могу правильно перенести код на сервер, но я не могу заставить команду NODE_ENV=production forever start -c 'npm run serve' выполняться должным образом. Когда я попытался запустить его локально на своем сервере, я получил такой ответ (вывод справки). Мне нужно запустить, npm serve потому что он выполняет следующее: "serve": "gulp build amp;amp; npm-run-all --parallel gulp-watch jekyll-serve" . Мой проект является форком Tabler.

 root@server:/var/www/server# cd /var/www/server/current/front-end/ amp;amp; NODE_ENV=production forever start -c 'npm run serve'
help:    usage: forever [action] [options] SCRIPT [script-options]
help:    
help:    Monitors the script specified in the current process or as a daemon
help:    
help:    actions:
...
...
  

Ответ №1:

Вы можете использовать другой вариант, если это навсегда не работает, для того, чтобы ваш файл сценария всегда работал в фоновом режиме, вы можете использовать

PM2 npm

обратитесь к этому https://www.npmjs.com/package/pm2

ИЛИ второй вариант заключается в том, что вы можете использовать

tmux

вы можете использовать это, и это позволяет запускать службу npm так же, как вы запускаете в локальной системе, предоставляя вам ссылку ниже

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-tmux-on-ubuntu-12-10—2

Комментарии:

1. Я пробовал это, но не смог заставить команду npm run serve работать. Есть предложения относительно того, как я могу этого добиться?

2. @user82395214 Привет, я внес изменения, и я предоставил решение и ссылку, на которую вы можете сослаться, я гарантирую, что это сработает, потому что я также использую это для запуска npm run serve

Ответ №2:

Вам нужно указать абсолютный путь к папке, которую вы хотите обслуживать, а также использовать which для получения абсолютного пути команды.

Я использую npx для запуска serve вместо того, чтобы устанавливать его, и это работает следующим образом:

 forever start $(which npx) serve -l 80 -s /home/user/folder/build/
  

Комментарии:

1. Я сделал это… Теперь остановка forever не остановит это!