TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
JS F/k

23 Jul, 07:59

Открыть в Telegram Поделиться Пожаловаться

Отображение SHA и времени коммита в веб-приложении

Если вы не используете SemVer или приложение еще не получило стабильной версии — имеет смысл отображать SHA последнего коммита и его дату, чтобы понимать, какая версия сейчас запущена. В Vite это реализуется в несколько строк.

Получение информации о коммите

В любом удобном файле, либо прямо в vite.config.ts напишите:
import { execFileSync } from "node:child_process";

const commitSHA = execFileSync("git", ["rev-parse", "--short", "HEAD"], { encoding: "utf8" }).trim();
const commitDate = execFileSync("git", ["log", "-1", "--format=%cI"], { encoding: "utf8" }).trim();

Что делает этот код?
execFile (и его синхронная версия execFileSync) запускает исполняемый файл, в нашем случае git и передаёт в него параметры.

- git rev-parse --short HEAD — возвращает сокращённый SHA текущего коммита.
- git log -1 --format=%cI — возвращает дату последнего коммита в формате ISO.

Используется execFile вместо exec, чтобы запускать команду напрямую без передачи строки на обработку shell.


В опции encoding передается значение utf8, чтобы вызов вернул строку вместо Buffer.

Добавьте значения в define в vite.config.ts:
export default defineConfig({
+ define: {
+ "import.meta.env.VITE_GIT_COMMIT_SHA": JSON.stringify(commitSHA),
+ "import.meta.env.VITE_GIT_COMMIT_DATE": JSON.stringify(commitDate)
+ }
});

Добавление в компонент
Теперь в любом компоненте можно получить значения из переменных среды через import.meta.env.
const { VITE_GIT_COMMIT_SHA, VITE_GIT_COMMIT_DATE } = import.meta.env;

И использовать, например, вот так:
const commitDate = new Intl.DateTimeFormat(navigator.language, {
year: "numeric",
month: "long",
day: "2-digit"
}).format(new Date(VITE_GIT_COMMIT_DATE));

const revision = `${commitDate} [${VITE_GIT_COMMIT_SHA}]`; // July 18, 2026 [369f0b3]

Такой способ позволяет быстро определить, какой коммит сейчас развернут, и убедиться, что деплой прошёл успешно.

⚠️ Этот способ работает только если во время сборки доступен git-репозиторий. Если проект собирается без каталога .git, команды завершатся ошибкой.

#build #git #vite

12 0 0
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot