Рецепты Cz-git — легко зафиксировать

Рецепты Cz-git — легко зафиксировать

7 апреля 2022 г.

гитхаб: https://github.com/Zhengqbbb


сайт: https://cz-git.qbenben.com/



Что такое cz-git?


Что такое commitizen: инструмент командной строки git commit на основе Node.js, который помогает создавать стандартизированные и стандартизированные сообщения фиксации.


Что такое адаптер: замените интерактивный плагин для инструмента командной строки commitizen.


Зачем это делать


Последний год я коммитил почти каждый день, и как ленивый программист я понял, что почти все коммитизен-адаптеры мне не очень удобны в использовании.


Например, если я восстановил таблицу в пользовательской библиотеке монорепозитория, я должен подсознательно исправить таблицу. Почему мне нужно продолжать выбирать вверх и вниз? Я просто хочу, чтобы fi нажал Enter, чтобы вывести fix, ta, чтобы нажать Enter, чтобы вывести table. Настолько, что я сделал адаптер cz-git.


рецепты


Позвольте мне представить использование cz-git


области


области, обычно для определения области этой фиксации, обычно существует два типа: в соответствии с различием кода проекта , например, монорепозиторий , другой различие бизнеса проекта


области действия для кода проекта


Например, если вам нужно управлять несколькими пакетами для удобства, используйте: pnpm | lerna.js для управления монорепозиторием вы можете использовать модули path и fs для динамического определения областей (областей), отображаемых в сообщении фиксации.


```javascript


// .commitlintrc.js


const fs = требуется ('fs')


постоянный путь = требуется ('путь')


константные пакеты = fs.readdirSync(path.resolve(__имя_каталога, 'пакеты'))


модуль.экспорт = {


быстрый: {


области действия: [...пакеты]


Если вы определяете `scope-enum с помощью правила commitlintopen in new window, оно будет импортировано автоматически.


```javascript


// .commitlintrc.js


const fs = требуется ('fs')


постоянный путь = требуется ('путь')


константные пакеты = fs.readdirSync(path.resolve(__имя_каталога, 'пакеты'))


модуль.экспорт = {


правила: {


"scope-enum": [2, "всегда", [...пакеты]]


demo-gif


области для бизнес-системы


```javascript


// .commitlintrc.js


const fs = требуется ('fs')


постоянный путь = требуется ('путь')


константные пакеты = fs.readdirSync(path.resolve(__имя_каталога, 'пакеты'))


модуль.экспорт = {


быстрый: {


области действия: ["приложение", "дом", "аккаунт", "комментарий"]


Конечно, если вы хотите добавить описательную информацию в настройку всего модуля для отображения в командной строке, вы можете использовать name и value для определения.


```javascript


// .commitlintrc.js


const fs = требуется ('fs')


постоянный путь = требуется ('путь')


константные пакеты = fs.readdirSync(path.resolve(__имя_каталога, 'пакеты'))


модуль.экспорт = {


быстрый: {


области применения: [


{ значение: "приложение", имя: "приложение: системный бизнес" },


{значение: "дом", имя: "дом: домашняя страница" },


{ значение: "учетная запись", имя: "учетная запись: связанная с учетной записью" },


{ значение: "комментарий", имя: "комментарий: связанный комментарий" },


demo-gif


По умолчанию


проблемы по умолчанию


  • При автоматическом получении Номера выпуска очень хлопотно повторять запрос, чтобы ввести `номер выпуска.

  • Но если правила команды ветки команды стандартизированы (например, fix/33)

  • Затем мы используем execSync узла, чтобы получить имя ветки с помощью команды

  • Затем обработать полученную строку

  • Затем мы используем `defaultIssues

  • При использовании нам нужно только нажать клавишу ==== , чтобы вывести Номер проблемы, чтобы мы могли легко перехватить Номер проблемы, чтобы уменьшить повторяющуюся работу.

```javascript


// .commitlintrc.js


const { execSync } = require('child_process');


// @tip: имя ветки git = feature/33 => auto get defaultIssues = #33


const issue = execSync('git rev-parse --abbrev-ref HEAD')


.нанизывать()


.подрезать()


.split("/")[1]


// @tip: динамическое имя монорепозитория


/* @type {import('cz-git').UserConfig} /


модуль.экспорт = {


быстрый: {


defaultIssues: () => !issue ? "" : #${проблема}




Расширьте свое воображение, а настраиваемый cz-git сделает коммит более удобным и привычным. Добро пожаловать поделиться.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE