Рецепты 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, "всегда", [...пакеты]]
области для бизнес-системы
```javascript
// .commitlintrc.js
const fs = требуется ('fs')
постоянный путь = требуется ('путь')
константные пакеты = fs.readdirSync(path.resolve(__имя_каталога, 'пакеты'))
модуль.экспорт = {
быстрый: {
области действия: ["приложение", "дом", "аккаунт", "комментарий"]
Конечно, если вы хотите добавить описательную информацию в настройку всего модуля для отображения в командной строке, вы можете использовать name
и value
для определения.
```javascript
// .commitlintrc.js
const fs = требуется ('fs')
постоянный путь = требуется ('путь')
константные пакеты = fs.readdirSync(path.resolve(__имя_каталога, 'пакеты'))
модуль.экспорт = {
быстрый: {
области применения: [
{ значение: "приложение", имя: "приложение: системный бизнес" },
{значение: "дом", имя: "дом: домашняя страница" },
{ значение: "учетная запись", имя: "учетная запись: связанная с учетной записью" },
{ значение: "комментарий", имя: "комментарий: связанный комментарий" },
По умолчанию
проблемы по умолчанию
- При автоматическом получении
Номера выпуска
очень хлопотно повторять запрос, чтобы ввести`номер выпуска
.
- Но если правила команды ветки команды стандартизированы (например, 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
сделает коммит более удобным и привычным. Добро пожаловать поделиться.
Оригинал