предисловие
Недавно я изучаю Git, чтобы отправлять спецификации, публиковать и генерировать CHANGELOG и, наконец, реализовывать свой собственный шаблон CHANGELOG и публиковать его в NPM.Пожалуйста, нажмите на адрес плагина.здесь
Git Commit раньше был не очень стандартен, что сабмитить в виду, все в команде сабмитят по-разному, нет специального обозначения, какие коммиты новые фичи, а какие багфиксы, сложно проверить записи коммитов.
Концептуальная версия незнакомца, перед использованием версии git tag play вам необходимоСначала проверьтеЧто такое версия на удаленном сервере один раз? После добавления локального тега отправьте тег на удаленный склад. Это только шаг для завершения версии. Если вам нужно предоставить файл CHANGELOG.md, чтобы объяснить содержание обновления каждого версия, это более хлопотно
В настоящее время нам нужны подключаемые модули, которые помогут нам стандартизировать отправку коммитов git, автоматизировать выпуск версий и автоматически генерировать CHANGELOG.
Эта статья длинная и содержит много картинок, так что будьте осторожны заранее!
плагин хаски хук
использоватьhuskyсправлятьсяgit commit
Предыдущая операция, зачем мы это делаем, ведь мы можемgit commit
Проверьте код еще раз, прежде чем предотвратить отправку «грязного» кода и убедитесь, что код в базе кода «чистый»,husky
не только управлятьcommit
,git
Крюками почти можно управлять, но наиболее часто используемые из нихcommit
а такжеpush
- Установить
npm install husky --save-dev
- Настроить в пакете
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
}
здесь, вcommit
Раньше мы выполнялиnpm run lint
,Этоvue-cli3
Команды, данные нам, будут основаны на нашейeslint
правила для проверки кода иавто ремонт, не забудьте сначалаgit add
документ
- использовать
Но в этом будет проблема, то есть в этой подаче я могу модифицировать только один файл, например, я буду модифицироватьa.js
, но он все равно будет проверять все файлы .js в src, что очень недружелюбно.
В результате возникает проблема: каждый раз, когда вы отправляете код, независимо от того, сколько изменений было внесено, будут проверяться файлы всего проекта.скоростьстанет все больше и большемедленный
lint-staged
Чтобы решить вышеуказанные болевые точки, вам необходимо использоватьlint-staged. ЭтоТолькоПодтвердите, что вы отправили или измениличастьсодержание.
npm install lint-staged -D -S
Измените конфигурацию package.json:
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/*_/_.{js,vue}": ["npm run lint", "git add"]
}
}
Как настроено выше, каждый раз это будет только в вашем локальномcommit
Перед этим убедитесь, что контент, который вы отправляете, соответствует вашемулокальная конфигурацияизeslintЕсли правила соблюдены, отправка будет успешной. Если не совпадает, то будетавтоматическийвоплощать в жизньnpm run lint
Попробуй помочь тебеавто ремонт, если восстановление прошло успешно, это поможет вам отправить исправленный код.Если это не удастся, вам будет предложено сообщение об ошибке, и вам будет разрешено отправить код после исправления ошибки.
Но это не обязательно, некоторые члены команды или новички не настроили в редакторе илиигнорироватьПринудительно отправляется сообщение об ошибке в командной строке.В это время необходимо настроитьpre-commitЭта обязательная проверка гарантирует, что весь контент, отправленный в удаленный репозиторий, соответствует спецификациям команды.
Ссылаться нацветочные брюкиДокументация большого парняvue-element-admin
Проверка фиксации фиксации
В совместном проекте с несколькими людьми, если стиль кода един, а описание информации о представлении кода является точным, техническое обслуживание иBug
Будет удобнее обращаться.
Git каждый раз, когда вы отправляете код, вы должны писатьCommit message
(Совершить)
Однако метод отправки у всех разный. Нет специального обозначения того, какие коммиты являются новыми функциями, а какие исправлениями ошибок. В настоящее время для стандартизации необходимы подключаемые модули.
Стандартизируйте роль сообщения фиксации
- предоставить больше исторической информации,УдобствоБыстрый просмотр
- Отфильтруйте определенные коммиты (например, изменения документа), чтобы быстро найти информацию
- Сгенерировано непосредственно от совершенияCHANGELOG
- хорошая читаемостьпонятно, вам не нужно смотреть на код, чтобы понять роль текущего коммита.
- Подготовка к проверке кода
- Легко отслеживать историю проекта
Установите плагин в проект:
npm i commitizen cz-conventional-changelog --save-dev
- Настроить в пакете
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
}
- В упаковкеscriptsкоманда конфигурации в
"commit": "git-cz",
- использовать
После того, как зависимости будут установлены, вы можете начатьпоказать операциюохватывать
первымgit add .
После добавления файла в локальную промежуточную область,commit
npm run commit
Обратите внимание, что если ранееgit commit
Чтобы отправить код таким образом, его нужно изменить наgit-cz
Обратите внимание, что если ранееgit commit
Чтобы отправить код таким образом, его нужно изменить наgit-cz
Обратите внимание, что если ранееgit commit
Чтобы отправить код таким образом, его нужно изменить наgit-cz
Описание формата сообщения фиксации
Сообщение о коммите обычно состоит из трех частей:Header,Bodyа такжеFooter
Header type(scope):subject
тип (обязательно), область действия (необязательно) и тема (обязательно)
Есть несколько типов на выбор
тип: используется для описания типа фиксации в виде следующего
feat:新功能
fix:修补 bug
docs:修改文档,比如 README, CHANGELOG, CONTRIBUTE 等等
style: 不改变代码逻辑 (仅仅修改了空格、格式缩进、逗号等等)
refactor:重构(既不修复错误也不添加功能)
perf: 优化相关,比如提升性能、体验
test:增加测试,包括单元测试、集成测试等
build: 构建系统或外部依赖项的更改
ci:自动化流程配置或脚本修改
chore: 非 src 和 test 的修改
revert: 恢复先前的提交
scope: (необязательный) используется для описания области действия коммита.
тема: краткое описание коммита, как можно короче
Body
Часть Body представляет собой подробное описание этого коммита, которое можно разделить на несколько строк.
Footer
Раздел нижнего колонтитула используется только в двух случаях.
- Несовместимые изменения
Если текущий код несовместим с предыдущей версией, раздел нижнего колонтитула начинается сBREAKING CHANGEВ начале следует описание изменения, а также причина изменения и способ миграции.
- закрыть вопрос
Если текущая фиксация предназначена для проблемы, вы можете закрыть проблему в разделе нижнего колонтитула или закрыть сразу несколько задач.
? Select the **type** of change that you're committing:
(type) 选择提交更改的类型
? What is the **scope** of this change (e.g. component or file name)? (press enter to skip)
(scope) 此次更改的范围是什么(组件或者文件名)
? Write a **short**, imperative tense description of the change:
(subject) 写一个简短的,命令式的变化描述
? Provide a **longer description** of the change: (press enter to skip)
(Body) 提供更改的长描述
? Are there any **breaking changes**?
(Footer) 有没有突破性的变化
? Does this change affect any open **issues**? (y/N)
(Footer) 此次更改是否有要关闭 issues
Если текущая фиксация связана с проблемой
? Does this change affect any open issues? (y/N)
Выберите Y, введитеCloses #1(указывает на закрытие 1-го выпуска)
Также возможно закрыть сразу несколько задач: Закрывает #1 #2 #3
Адрес ссылки по умолчанию для задач в CHANGELOG основан на адресе в package.json.repositoryгенерировать
еслиrepository
Нет, он получит git в gitпуть к удаленному репозиториюпрефикс
будет проведено позжепроверка форматирования кода, если код не соответствует спецификации, отправка также не пройдет,Обязательно убедитесь, что текущий формат проекта правильный, и отправьте его после спецификации! ! !
Для получения более подробной информации, пожалуйста, обратитесь к блогу Учителя Жуань Ифэн:Сообщение фиксации и руководство по написанию журнала изменений
Версия с автоматическим выпуском
Здесь я используюrelease-itВ качестве плагина релизной версии вы также можете выбратьstandard-version
- Установить плагин
npm install --save-dev release-it
- в упаковкеscriptsкоманда конфигурации в
"release": "release-it"
Введите терминал проектаnpm run release
будет выполнять действие
Если появляется сообщение об ошибке, показанное на рисунке ниже, вы можете решить его, войдя в npm.
До релизной версии,долженхочуподтверждатьЕсть ли еще файлыне представлен, в противном случае будет сообщено об ошибке, и сообщение об ошибке будет следующим:
ERROR Working dir must be clean.
Please stage and commit your changes.
Alternatively, use `--no-git.requireCleanWorkingDir` to include the changes in the release commit (or save `"git.requireCleanWorkingDir": false` in the configuration).
Рабочий каталог должен быть чистым, пожалуйста, поставьте (add) и отправить (commit) ваши изменения
Не рекомендуетсяРешено путем изменения конфигурации git, потому что публикация версии должна бытьбез измененийиз,стабильныйТолько для публикации, если в теге git не указан соответствующий идентификатор фиксации,По умолчаниюсуществуетдо настоящего временивкладка ЗАПИСАТЬ,Уведомление! !быть вглавная ветвь(основная) версия выпуска
release-it
буду читатьместныйизpackage.jsonсерединаversion, подсказывая вамтокКакая версия, не нужно разработчикам использоватьgit tag -l
Чтобы узнать, что такое текущая локальная версия и какие изменения были внесены в эту версию, он предоставляет несколько параметров по умолчанию, чтобы вы могли выбрать номер версии.
Если вы считаете, что вышеуказанные варианты не могут удовлетворить ваши требования, последний вариант - заполнить информацию о версии самостоятельно (для соответствия спецификации), вы можете обратиться к спецификации версии.Семантическое управление версиями 2.0.0
После подтверждения версии она будет автоматически измененаpackage.json
информация о версии, которая является одним из способов просмотра текущей версии проекта для внешних разработчиков. После этого спрашивается то ли коммитить, то ли тегировать, то ли пушить на удалённый склад, и можно жать Enter до упора. Если последним элементом является проект компании, вам не нужно загружать его в репозиторий npm, просто выберите НЕТ, даже если выбрано Да, пока вы находитесь вpackage.jsonСредняя конфигурацияprivateдляtrue, не загружается. Как проверить успешность релиза?Вы можете ввестиgit tag -l
Просмотр локальных тегов, вы также можетеgit ls-remote --tags origin
Просмотр удаленных тегов
Но это просто тег, никакой подробной информации,Список измененийВсе еще должен быть написан вручную разработчиком
В настоящее время вам необходимо использовать автоматически сгенерированный плагин CHANGELOG.
Автоматически генерировать CHANGELOG
Установить
npm i conventional-changelog-cli --save-dev
настроить package.json
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
Приведенная выше команда журнала изменений не перезапишет предыдущую.CHANGELOG
, только вCHANGELOG.mdизголоваПлюс изменения с момента последнего релиза.
npm run changelog
Создайте файл CHANGELOG.md
существуетCHANGELOG.mdголовы плюс с последнейрелизная версияменяется с тех пор. Отображать типы подвигов, ошибок, документов и т. д.
Сгенерированный CHANGELOG не будет отсортирован в хронологическом порядке загрузки коммитов.Кто-то отправил вопросы официальному, ожидая официального решения. . 👉портал
Вы можете открыть репозиторий GitHub/GitLub и заполнить версию тега, соответствующую содержимому, сгенерированному журналом обновлений.
Подробный исходный код обычного журнала изменений
Здесь сначала покажите окончательный сгенерированный рендеринг CHANGELOG.
Предыстория происхождения следующая:
Тест: «Коммиттер, соответствующий коммиту, должен быть сгенерирован в CHANGELOG, чтобы проблемное место знало, кто за это отвечает»
Я: "😎 Это просто ~ просто настройте параметры"
Я думал, что мне нужно только настроить параметры, ведь плагин CHANGELOG поддерживает пользовательские параметры, когда я увидел документациюСмущенныйТеперь эти два параметра не предоставляются, а отображается отправитель и почтовый ящик отправителя.Что делать?Открыть вопрос. . . Кто-то должен отметить это требование 😏, по мнению#351Зная, что использование пользовательской конфигурации требует передачи пользовательского файла конфигурации извне
Создайте новый файл конфигурации с параметром -n после команды
{
"scripts": {
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 -n ./changelog-option/index.js"
}
}
Решена проблема использования пользовательской конфигурации, как увеличить CHANGELOG, чтобы генерировать больше информации об отправке, или открыть проблему...#349
Комбинация наверное такая, попробуйте эффект:
формат имеет поля authorName и authorEmail, запуститеnpm run changelog
После этого все равно не действует 😖 Могу только прочитать исходный код
Сторонний плагин node_modules отладки VSCode
настроитьlaunch.json,отладкаconventional-changelog-cliпод плагинcli.jsфайл, который согласуется с журналом изменений в пакете, а параметры передаются в"-p", "angular", "-i", "CHANGELOG.md", "-s", "-r", "0", "-n", "./changelog-option/index.js"
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}\\node_modules\\conventional-changelog-cli\\cli.js",
"args": [
"-p",
"angular",
"-i",
"CHANGELOG.md",
"-s",
"-r",
"0",
"-n",
"./changelog-option/index.js"
]
}
]
}
Глобальный поиск входящих полей элемента конфигурации:gitRawCommitsOpts, сделать точку останова для отладки
Обнаружено, что автор передает пользователюgitRawCommitsOptsСделайте слияние и, наконец, перейдите кconventionalChangelogметод для выполнения, продолжайте просматривать метод
Плагин отconventional-changelog-cli
перенаправить наconventional-changelog
Вниз
Определить, есть ли у пользователя входящиеpresetПредустановленные параметры, используемые при отладкеangularКонфигурация (-p angular)
здесь возвращаетсяconventionalChangelogCore
метод, все еще нажмите, чтобы прыгнуть
conventional-changelog-core
В качестве основной библиотеки подключаемого модуля основным местом являетсяmergeConfigСюда
Передать конфигурацию в ядроmergeConfigсливаться
formatТолько по умолчаниюhash,gitTagsа такжеcommitterDate, нет нуждыauthorNameа такжеauthorEmail, fromTag — наш последний отправленный тег,merges: falseПредставлен в CHANGELOGНе будетСоздание информации для ветки слияний
mergeConfigЯвляетсяPromise, после оценки конфигурация передаетсяgitRawCommits, с участиемpipeПеренаправление для передачи данных
БудуgitRawCommitsOpts
Настроить входящиеgitRawCommits
В методе продолжайте нажимать и видеть, и он перейдет кgit-raw-commits
плагин
git-raw-commits
пройти черезgit-raw-commits
официальный сайт гитхабаREADME, обнаружил, что этот плагин получает запись фиксации из локального репозитория git, которая была передана доformatэто параметр в git-log
hash:哈希值
gitTags:标签
committerDate:提交时间
authorName:提交人
authorEmail:邮箱
Более подробную информацию о git-log можно увидетьgit официальная документация, вы также можете отформатировать его в формате, который мы настроили после git log
Используйте git log напрямую для просмотра записи git commit, также есть поля имени автора и адреса электронной почты.
смотри здесь, конечноgit-raw-commitsПлагин просто читает данные из git и форматирует их, поэтому должен быть плагин, который записывает данные в файл CHANGELOG.md, так что продолжайте читатьconventional-changelog-core
,Обнаружитьconventional-changelog-writer
, не смотрите сначала на этот плагин, помните, что я использовал его раньшеangular
Это по умолчанию, вы можете пойти посмотретьconventional-changelog-angular
плагин
Хороший проект знает, что делает каждый файл из имени файла, и разделяет конфигурацию разных плагинов по отдельности, чему стоит научиться.
conventional-changelog-angular
writer-opts.js
Это конфигурация, записанная в CHANGELOG, и, наконец, конфигурация будет передана вconventional-changelog-writer
, здесь, чтобы соответствовать информации нашего предыдущего сообщения коммита
На самом деле перед писателем стоит другойparserПлагины, используемые для анализа предоставленной нами информации, сколько плагинов зависит от этого журнала изменений. . .
используя фиксациюнормализоватьКогда плагин отправлен, вам необходимо заполнить соответствующую информацию, распечатать информацию о коммите здесь
обнаружил, что естьauthorNameа такжеauthorEmailОба поля существуют, иconventional-changelog-writer
Этот плагин предназначен для создания такого объекта CHANGELOG.md с помощью плагинаREADMEЗнать
Теперь поле тоже доступно, но почему оно не отображается?Продолжаем смотреть исходный код, который здесь используетсяtemplates/commit.hbs
документ
Видя, что это почти то же самое, папка шаблона является файлом шаблона для создания CHANGELOG, проверьте hbs(Handlebars) — это шаблонизатор. Однако в commit.hbs этого нет.нетЯ нашел эти два поля полезными, подумайте об этом, эти два поля являются моей конфигурациейgitRawCommitsOpts
входящий
иллюстрироватьangular
Предустановка изначально не думала о создании authorName и email. . . Это смущает, я могу только добавить его сам, изменить файл commit.hbs и добавить его после хеш-значения сгенерированного коммита.
Это успех~~! ! ! 🎉🎉🎉
Меня это взволновало, но, если подумать 🤔, такая прямая модификацияnode_modulesНет возможности поделиться исходным кодом плагина, если его используют коллеги, модифицировать его таким образом невозможно.conventional-changelog-angular
Исходный код и до тех пор, пока зависимости устанавливаются с помощью повторной установки npm, предыдущие модификации исчезнут.
Автор ужеconventional-changelog-cli
предусмотрено в обычаепример
Однако этот адрес былзаброшенныйТеперь новый адрес — это предустановка angular, которую мы использовали ранее.conventional-changelog-angular, официальный также предоставляет другие предустановленные шаблоны, такие как:atom
,eslint
,jQuery
это вОдинУправляется в пакетенесколькопроект используетсяlerna, инструмент для управления проектами JavaScript с несколькими пакетами. является более популярнымmonorepo
Режим управления проектом, React, Vue, Babel используют этот режим для управления.
ранее проанализированныйconventional-changelog-angular, напрямую клонировать исходный код для изменения, созданияgit-raw-commit.js
module.exports = {
format:
'%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci%n-authorName-%n%an%n-authorEmail-%n%ae'
}
Передать и использовать в index.js
'use strict'
const Q = require(`q`)
const conventionalChangelog = require(`./conventional-changelog`)
const parserOpts = require(`./parser-opts`)
const recommendedBumpOpts = require(`./conventional-recommended-bump`)
const writerOpts = require(`./writer-opts`)
// 格式化 git log 信息
const gitRawCommitsOpts = require('./git-raw-commit')
module.exports = Q.all([
conventionalChangelog,
parserOpts,
recommendedBumpOpts,
writerOpts,
gitRawCommitsOpts
]).spread(
(
conventionalChangelog,
parserOpts,
recommendedBumpOpts,
writerOpts,
gitRawCommitsOpts
) => {
return {
conventionalChangelog,
parserOpts,
recommendedBumpOpts,
writerOpts,
gitRawCommitsOpts // 传入
}
}
)
Затем измените commit.hbs, чтобы отображались authorName и authorEmail.
вотмаленькая яма! ! я используюVSCodeПосле модификации сразу сохраняется, если естьнесколько коммитов, не будет заворачиваться, будет сжиматься в одну строку, считается, что сохраняетсяневерный формат, возможно, я установил больше расширений форматирования в VSCode, рекомендуется использоватьNotepad++модифицироватьcommit.hbsдокумент
Заменить путь задач
использование компанииredmineдля управления проектом тестировщики будутredmineСерединаissues, который генерируется здесьCHANGELOGзаменить оптомissuesадрес, будетGitLabЗамените префикс адреса наredmine, сказал он-лайнreplaceбиблиотеку, но я обнаружил, что эта библиотека была загружена в npm три года назад, и онабольше не поддерживается, также после использованиясообщить об ошибке. . . Поэтому я написал простой файл замены строки. После создания CHANGELOG запустите файл, чтобы заменить его. Он поддерживает передачу параметров (см.conventional-changelog
исходный код, используемыйminimistплагин для получения переданных параметров)
{
"scripts": {
"changeissueurl": "node ./changelog-option/replace.js https://gitlba.com/issues/ https://redmine.example.com/issues"
}
}
Затем интегрируйте эти два скрипта в одну версию, а затем, чтобы выпустить версию, чтобы сгенерировать CHANGELOG, просто запуститеnpm run versionТолько что
Опубликовать в репозиторий NPM
Это все еще слишкомбеда, пользователю не нужно слишком много знать, а файл существует локально, что неудобномигрировать, 🤔 Можете ли вы сделать предустановленный шаблон прямо как угловой, чтобыconventional-changelog
Просто воспользуйтесь нашим кастомным предустановленным шаблоном, для проверки все равно придется полистать исходный код, он уже был отлажен до этого, но я не присматривался.
существуетconventional-changelog-preset-loader
середина
По умолчанию просто следуйте${scope}conventional-changelog-${name}
Это соглашение об именах может потребоваться,scopeЭто связано с тем, что репозитории npm не могут иметь одинаковое имя, вы можете добавить свое собственное имя пользователя в качестве области действия, например:@zsh/conventional-changelog-angular
, а затем измените конфигурацию на-p @zsh/angular
Вы можете использовать пользовательские пресеты
благодарныйconventional-changelog
! Нечего сказать, запустите проект npm, вставьте все предыдущие файлы и снова оптимизируйте шаблон.
СДЕЛАТЬ:
- authorName и authorEmail не обязательны и могут быть настроены
- Проблемы легче заменить адресами
- Добавить в заголовокemojis🚀
Поскольку коммит, полученный здесь, находится в строковом формате, вы можете установить значение в шаблоне commit.hbs, а затем заменить его в соответствии с конфигурацией пользователя, поэтому authorName и authorEmail не нужны, они отключены по умолчанию и должны быть вручную установить, чтобы включить
Вопросы и смайлики относительно простые и обсуждаться не будут.Я считаю, что если вы внимательно прочитаете это, то сможете сделать свои пресеты~
Так как публикую в npm первый раз, опыта у меня нет, и надеюсь, что эффект будет не очень, приношу свои извинения 🏃♂️, адрес npm:conventional-changelog-custom-config
использовать
npm install conventional-changelog-custom-config --save-dev
Настроить CHANGELOG в виде параметров конфигурации в package.json,Не заполнять конфигурациюпоследуетangularШаблон по умолчанию для создания CHANGELOG, конкретная конфигурация выглядит следующим образом:
{
"scripts": {
"changelog": "conventional-changelog -p custom-config -i CHANGELOG.md -s -r 0"
},
"changelog": {
"bugsUrl": "https://redmine.example.com/issues/",
"emojis": true,
"authorName": true,
"authorEmail": true
}
}
bugsUrl
Type: string
Default: false
Используйте этот параметр, если вам нужно заменить URL-адрес задач другим URL-адресом, например, с помощьюredmineуправлять проектами,bugsUrl: 'https://redmine.example.com/issues/'
Если не заполненоbugsUrl
будет основываться наpackage.jsonсерединаrepository
илиrepository.url
в качестве URL-адреса проблем
{
"repository": {
"type": "git",
"url": "https://github.com/example"
}
}
еслиrepository.url
Если нет, он получит git в gitпуть к удаленному репозиториюкак префикс,адрес источника обычного журнала изменений
Если вы используете стороннюю систему совместной работы (например,bitbucket), рекомендуется использовать этот плагинconventional-changelog-angular-bitbucket
emojis
Type: boolean
Default: false
, справочник по типам эмодзиgitmoji
Commit Type | Title | Description | Emojis |
---|---|---|---|
feat |
Features | A new feature | ✨ |
fix |
Bug Fixes | A bug Fix | 🐛 |
docs |
Documentation | Documentation only changes | 📝 |
style |
Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | 💄 |
refactor |
Code Refactoring | A code change that neither fixes a bug nor adds a feature | ♻️ |
perf |
Performance Improvements | A code change that improves performance | ⚡️ |
test |
Tests | Adding missing tests or correcting existing tests | ✅ |
build |
Build | Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) | 👷 |
ci |
Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) | 🔧 |
chore |
Chores | Other changes that don't modify src or test files | 🎫 |
revert |
Reverts | Reverts a previous commit | ⏪ |
authorName
Type: boolean
Default: false
Сгенерировать имя пользователя в CHANGELOG
authorEmail
Type: boolean
Default: false
Создание почтовых ящиков в CHANGELOG
Больше разделов для просмотраREADME,Нелегко кодировать слова, нелегко открыть исходный код, если вы думаете, что это хорошо, дайте ⭐️~😝 Спасибо~
Суммировать
Подводя итог всему этому процессу подбрасывания, спецификация стиля кода ----> спецификация коммита ----> спецификация версии ----> генерировать CHANGELOG ---> пользовательский CHANGELOG ---> предустановка выпуска NPM
Просто загляните в README первых четырех шагов и приступайте к работе. В этом нет ничего сложного. Настройка CHANGELOG немного сложнее, и он открыт для публики.conventional-changelog-cli
Собрать пользовательскую конфигурацию, например -p angular -s -r 0 -n config.js, если есть предустановленный шаблон, например angular, он будетconventional-changelog-angular
конфиг переданconventional-changelog-core
в слиянии, затем передатьgit-raw-commits
Получить данные журнала из локального git,conventional-changelog-parser
Чтобы проанализировать информацию, предоставленную пользователем, интегрируйте два типа данных в один объект, передайтеconventional-changelog-writer
Создайте файл CHANGELOG.md
В начале установлено много плагинов.После завершения настройки это дело одной-двух команд.Если вам интересно,пожалуйста, обратитесь к моей статье и напишите шаблон для себя.Их тоже много готовые шаблоны на npm, которые можно использовать.Расширение VSCodeВключено в официальную рекомендацию обычного списка изменений,Местонахождение статьи, люди тоже в Наггетс 😏
Эта статья длинная, и в ней неизбежно будут ошибки и недочеты.Я надеюсь, что большие ребята оставят сообщение, чтобы поправить меня, чтобы не вводить людей в заблуждение
Справочная документация
Стандартная автоматизация для git commit , CHANGELOG и выпусков версий
Сообщение фиксации и руководство по написанию журнала изменений