Wenn Sie herkömmliche Commits verwenden (und wenn nicht, sollten Sie 😜) Es ist sehr nützlich, etwas zu haben, das dir sagt, ob du dich auf dem richtigen Weg bewegst.
Dieses Thema konzentriert sich auf JavaScript-Projekte .
Wie Sie wissen, werden herkömmliche Commits auf diese Weise zusammengesetzt:
type(scope?): subject
body?
footer?
Es ist einfach, eine Commit-Nachricht zu erstellen, die diesen Standard nicht repräsentiert, also kommt Linting uns zu Hilfe!
Wir werden zwei Pakete verwenden:commitlint
und husky
festschreiben
Dieses Paket prüft, ob die Commit-Meldungen in der oben gezeigten Form oder zumindest in der Form type: subject
vorliegen . Es ist einfach über eine Datei konfigurierbar, sodass seine Konfiguration gemeinsam genutzt werden kann.
module.exports = {
extends: ['@commitlint/config-conventional']
}
Wenn das Paket installiert und konfiguriert ist, teilen wir dem Code mit, dass wir möchten, dass unsere Commits "konventionell" sind.
Aber wir müssen Commitlint bitten, unsere Nachrichten zu linten.
Können wir dies jedes Mal automatisch tun, wenn wir einen neuen Commit machen?
heiser
Husky ist ein Paket, das mit den von Git bereitgestellten Hooks interagiert, um einige benutzerdefinierte Aktionen auszulösen:Linters, Fehlerprüfung, Ausführen von Skripten usw.
In diesem Fall möchten wir einen commitlint
auslösen überprüfen Sie jedes Mal, wenn wir einen Commit durchführen, ohne dass der Lint manuell gestartet werden muss.
Glücklicherweise kommt uns die Community zu Hilfe und wir müssen nur zwei Befehle ausführen
yarn husky install
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
Am Ende stellt dieses Setup sicher, dass bei jedem Commit der Linter aufgerufen wird und alle Prüfungen durchgeführt werden.
Und wenn wir uns verpflichten, ohne die Regeln zu befolgen, passiert dies (VSCode-Beispiel)
⧗ input: test commit
✖ subject may not be empty [subject-empty]
✖ type may not be empty [type-empty]
✖ found 2 problems, 0 warnings