Тыщу лет назад написал постер контента для своих каналов в телеге. Я был зеленый еще, написал, склонировал исходники на сервак и запускал прямо из исходников.
Недавно понял, что пора прикрутить билд и деплой для проекта, потому что допиливание и исправление критичных багов вызывали попо-боль — либо допиливаешь прямо на сервере через ssh расширение для VSCode, либо вручную потом копируешь нужные файлы. Потом еще версии на серваке и в репозитории отличаются, какие изменения актуальные уже с трудом понимаешь.
Решил не заморачиваться с docker, а простенько через rsync обновлять файлы и перезапускать проект через pm2.
Накидал sh скрипт для деплоя. До этого особо не разбирался в баш-скриптах (да и сейчас не особо). Понравилось, что можно не захардкоживать пароль от ключа, а подставлять его из аргументов при вызове команды.
Плюс попутно пришлось решить проблему сборки и динамического импорта зависимостей (есть модули, которые подгружаются по путям из настроек во время работы программы). Не уверен, что нашел хорошее решение, но как обходной путь сойдет. Суть способа — оставить оригинальный
require вместо webpack-require.