Задать вопрос

Как вы обновляете vue проекты на проде?

Использую vue-cli. По умолчанию dist добавлена в .gitignore, то есть подразумевается, что я комичу изменения, стягиваю их на сервере и там же на сервере запускаю npm run build. Проблема в том, что после запуска npm run build удаляет директорию dist и генерирует новую. Все это время сайт недоступен. Я для решения этой проблемы убрал dist из .gitignore и заливаю уже собранный проект, но это неправильно идеологически. Как делаете вы?
  • Вопрос задан
  • 668 просмотров
Подписаться 5 Простой 2 комментария
Решение пользователя Константин Китманов К ответам на вопрос (3)
k12th
@k12th
console.log(`You're pulling my leg, right?`);
CI/CD (Continuous Integration/Continuous Delivery) сервер ответ на ваши проблемы. Например, bitbucket pipelines, circle ci, gitlab pipelines, jenkins и т.д. Работает так:
  • сервер отслеживает пуши в определенные ветки, например, в master.
  • если в master пришли коммиты, то запускается определенный скрипт, который вызывает сборку (обычно еще перед этим запускаются тесты, если есть).
  • если сборка прошла успешно, то результат этой сборки кладется в отдельную папку -- это называется build artifact
  • этот build artifact тем или иным образом загружается на хостинг -- у всяких там AWS/Azure и т.п. облак обычно есть API для этого, можно передавать файлы через scp или sftp.

Если вся инфраструктура локальная, то и CI/CD сервер обычно ставят локально, например, Jenkins или TeamCity. Но без выделенного админа/девопса проще в облаках настроить, наверное.

P.S. это, конечно, годится не только для проектов на vue, а вообще для любого веба, включая бэкенд.
Ответ написан
Комментировать