Предистория
Создавал сайт при помощи Hugo, но приходилось делать некоторые рутинные манипуляции, которые хотелось как то автоматизировать. Перед генерацией сайта все время нужно было удалять папку public
иначе старые файлы или папки, которых уже нет в обновленном сайте оставались в каталоге. Потом после генерации сайта нужно было его переносить на сервер в каталог виртуального хоста, который так же приходилось полностью чистить, т.е. удалять ве файлы и папки содержащиеся в нем.
Задавшись вопросом - “А ведь всего этого можно не делать и давно уже есть готовые решения, ну или хотя бы инструменты”.
Очистка каталога public
Начав изучать данный вопрос нашел команду, которая делает, то что не надо все время удалять перед генерацией сайта каталог public
.
hugo --cleanDestinationDir
В таком исполнении все файлы или каталоги не присутствующие при генерации сайта удаляются, таким образом избавляемся от мусора.
А еще проще сразу прописать в конфиге генерации сайта такую строчку:
cleanDestinationDir: true
Синхронизация в Visual Studio Code через SFTP
Осталось теперь переносить сгенерированный сайт на сервер и что бы для начала это был полуавтоматический режим, потом настрою до полной автоматики. Пока не ясны некоторые команды и ключи, надо тестить, что бы добиться нужного результата. Судя по документации это реально возможно, осталось выяснить некоторые нюансы.
Расширение SFTP для Visual Studio Code
Подумав, что в любом случае должна быть программа работающая из Visual Studio Code, которая синхронизирует содержимое указанного каталога с каталогом виртуального хоста, к серверу естественно есть доступ по SSH. И такое приложение нашлось, причем это гораздо лучше работает (гораздо меньше телодвижений мышкой надо делать), чем все то же самое делать при помощи FileZilla
То что доктор прописал: SFTP
Установка расширения SFTP для Visual Studio Code
В принципе все написано в документации, приведу краткие манипуляции в Visual Studio Code:
- Скопировать
ext install Natizyskunk.sftp
Ctrl+C - Нажать сочетание клавиш Ctrl+P Ctrl+V Enter
Настройка расширения SFTP для Visual Studio Code
- Открыть папку с сайтом в Visual Studio Code
- Нажать сочетание клавиш Ctrl+Shift+P
- Набрать
SFTP:config
В открывшемся файле вставить (пока временную) такую конфигурацию:
{
"name": "HTTP Server wildserver.ru",
"context": "public",
"host": "ip-server",
"protocol": "sftp",
"port": 22,
"username": "user",
"remotePath": "/home/wildserver.ru",
"uploadOnSave": false,
"useTempFile": false,
"openSsh": false,
"syncOption": {
"delete": true,
"update": true
}
}
Это работающий конфиг, который удаляет устаревшие файлы и папки и добавляет, только новые. Синхронизируя папку public
, в которой генерируется сайт, с папкой на сервере из которой берутся страницы сайта для отображения в браузере.
Добавить в .gitignore
Что бы в репе не светить данными о своем сервере добавить запись в .gitignore
- sftp.json
Сгенерировать сайт
hugo
Запуск расширения SFTP для Visual Studio Code
Пока полуавтомат, кнопки все таки нажимать надо, так же как и двигать курсором мышки. Но скоро будет все автоматизировано.
Что бы произвести синхронизацию каталогов на локальном хосте и сервере надо:
- Нажать сочетание клавиш Ctrl+Shift+P
- Набрать
SFTP
и из списка выбратьSFTP:Sync Local -> Remote
должен высветиться путь к папке, где живет сгенерированный сайт локально. Выбрать путь. - Ввести пароль пользователя чьё имя указано в конфиге.
- Начнется синхронизация.
Комментарии