Добавление имени git ветки в webpack-бандл

2020-6-3

Зачем?

Недавно столкнулся с тем что в тестовую сборку необходимо было добавить название текущей 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}"`
        })
    ]
};

На этом всё.

Комментарии