Я изучаю использование Nuxt.js для нового веб-приложения с сервером Express / API, прикрепленным к самому проекту. Я создал приложение Nuxt.js с помощью команды npx create-nuxt-app и выбрал Express в качестве «пользовательской инфраструктуры сервера».
При использовании среды разработки (npm run dev
) она работает как шарм. Теперь я хочу развернуть приложение на сервере, на котором запущен pm2, используя Gitlab CI. Я борюсь с правильным способом развертывания приложения, так как не думаю, что мне нужно «загрузить» исходный код на сервер, а затем выполнить необходимые команды, такие как npm run build
или npm start
. Итак, каков на самом деле «правильный путь» для развертывания этого приложения на сервере?
У меня есть SSH-доступ к серверу, на котором я хочу развернуть это приложение и API. На сервере запущен pm2 для управления процессами Node.
Кроме того, исходный код находится в репозитории на сервере Gitlab с доступным Gitlab CI Runner. Текущий gitlab-ci.yml делает следующее:
npm install
npm run build
lftp
папка dist
на сервере
При использовании SPA создается только клиент, а сервер / API - нет. Теперь у меня есть, на мой взгляд, грязный обходной путь, который не очень хорошо работает и который делает следующее:
npm install
npm run build
- зеркально отразить весь проект на сервере
- использовать наблюдателя в pm2 для обнаружения изменений в файлах
- Снова построить проект ???
Похоже, что он не работает должным образом, и у меня такое чувство, что мы создаем проблемы, а не решаем проблему развертывания правильным способом. Мы не используем Heroku, Google или другие сервисы для размещения приложения, это просто веб-хостинг с доступом по SSH.