Перед коммитом

Бывают определенные действия, которые надо обязательно выполнить до того как код попадет в коммит и репозиторий, чтобы, как минимум, не мучиться потом с rebase каждый раз. Решение, которое я опишу короткое и простое, но оно весьма упрощает жизнь разработчика.

Самое очевидное назначение – это выполнение тестов, но для меня это также и сборка бандла. Поскольку я не использую watch и регулярно забываю запускать команду билда руками, в коммит частенько заезжают неактуальные версии бандлов, а актуальные приходится коммитить следом. Выходит не очень опрятно. Для javascript нам поможет утилита pre-commit. Она использует hook гита, но дает возможность не лезть во все эти внутренности и управлять галактикой не выходя из npm.

Пойдем практическим путем: добавляем библиотеку в проект

npm i pre-commit --save-dev

В package.json в секцию pre-commit добавляем комманду build

"pre-commit": [
 "build"
],

Однако, собранные файлы бандла не попадут в коммит, т.к. гиту надо явно указывать измененные и добавленные файлы и добавлять все подряд выглядит довольно опасным. Чтобы все начало правильно работать определим команду add-bundles добавляющую файлы бандла.

"scripts": {
 "build": "npx rollup --config rollup.config.js",
 "add-bundles": "git add dist/*",
 "test": "echo "Error: no test specified" && exit 1"
},

И саму команду добавляем в секцию pre-commit

"pre-commit": [
 "build", "add-bundles"
],

Теперь прямо перед коммитом сразу собирается бандл и добавляется в коммит. Если нужен полный работающий пример, он есть в репозитории этой библиотечки: https://github.com/syncro/key-toggler

Let’s block ads! (Why?)

Read More

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *