Основным преимуществом работы с Git является перенос прав на директории и файлы. Это особенно важно при работе с проектами на Node.JS
Здесь вкратце опишу принцип переноса репозитория проекта на сервер при работе с Nuxt с уточнением нюансов, с которыми пришлось столкнуться.
Основной механизм включает следующие этапы:
1. Привязываем серверу удаленный репозиторий:
//вызывается из консоли (SSH) git remote add origin https://gitlab.com/name/project
2. Клонируем удаленный репозиторий на сервер:
//вызывается из консоли (SSH) git clone https://gitlab.com/name/project project // project - название папки куда будет склонирован репо
3. Устанавливаем модули node:
//вызывается из консоли (SSH) npm install
4. Компилируем фалы проекта
//вызывается из консоли (SSH) npm run build
5. Запускаем listener сервера
//вызывается из консоли (SSH) nohup node .output/server/index.mjs & //nohup - дает возможность //не привязываться к сессии пользователя при запуске //& - запускает задачу в режиме заднего фона
6. После этого можно выйти из режима listener (Ctrl+C) и закрыть SSH. Сервер будет работать в бекграунд фоне и не закроется при выходе из сессии пользователя SSH.
Теперь сайт запущен, в рабочем состоянии и остается только организовать правильно процесс внесения на него обновлений с тестового сервера. Последовательность действий здесь следующая:
1. Стандартно вносим обновления, комитим, заливаем на удаленный репо.
//вызывается из консоли (SSH) git add git comit -m "Some comment" git push origin master //master - название ветки
2. Загружаем изменения на боевом хосте.
//вызывается из консоли (SSH) git pull
3. Перекомпилируем файлы проекта .
//вызывается из консоли (SSH) npm run build
4. Перезапускаем listener сервера
//вызывается из консоли (SSH) kill -9 $(lsof -t -i:3000) //находим id текущего слушателя (listener) //на 3000 порту и закрываем его nohup node .output/server/index.mjs & //запускаем слушателя заново
После этого все должно работать а изменения должны появиться на боевом сайте.