Алексей Баранов

Добавление имени git-ветки в webpack сборку

Cover Image for Добавление имени git-ветки в  webpack сборку
Алексей Баранов
Алексей Баранов

Зачем?

Недавно я столкнулся с тем, что в тестовую сборку нужно было добавить имя текущей git-ветки. Ветки именуются по тикетам, поэтому при тестировании сборки довольно удобно смотреть версию по веткам. Пример названия ветки: bugfix/widget-3034

Сделать это было несложно, и все довольно легко гуглится, но так как мне нужно хоть что-то написать в блог, я решил этим поделиться. Есть 2 способа:

Очень простой способ

Скачиваем пакет git-revision-webpack-plugin

Запускаем:

npm install --save-dev git-revision-webpack-plugin

И затем настраиваем плагин:

const webpack = require("webpack");
const GitRevisionPlugin = require("git-revision-webpack-plugin");
const gitRevisionPlugin = new GitRevisionPlugin();

const branchName = JSON.stringify(gitRevisionPlugin.branch());

module.exports = {
  plugins: [
    gitRevisionPlugin,
    new webpack.DefinePlugin({
      BRANCHNAME: branchName,
    }),
  ],
};

Простой способ

Этот способ практически ничем не отличается от первого. Разница лишь в том, что вместо использования плагина мы сами получаем название ветки.

const webpack = require("webpack");
const childProcess = require("child_process");

const branchName = childProcess
  .execSync("git rev-parse --abbrev-ref HEAD")
  .toString()
  .trim();

module.exports = {
  plugins: [
    new webpack.DefinePlugin({
      BRANCHNAME: `"${branchName}"`,
    }),
  ],
};

На этом всё.