Работа с git для проектов на Nuxt

 

Основным преимуществом работы с 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 &  //запускаем слушателя заново

  

После этого все должно работать а изменения должны появиться на боевом сайте.

Кейсы