Lint Ihre Commits

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