Vor dem Festschreiben

Es gibt bestimmte Aktionen, die ausgeführt werden müssen, bevor der Code in das Commit und das Repository gelangt, damit Sie nicht jedes Mal später unter einer erneuten Basis leiden. Die Lösung, die ich beschreiben werde, ist kurz und einfach, aber sie erleichtert einem Entwickler das Leben erheblich.





Der naheliegendste Zweck ist das Ausführen von Tests, aber für mich ist es auch das Erstellen eines Bundles. Da ich watch nicht benutze und regelmäßig vergesse, den Build-Befehl von Hand auszuführen, kommen häufig irrelevante Versionen der Bundles in das Commit, und die aktuellen müssen als nächstes festgeschrieben werden. Es stellt sich nicht sehr ordentlich heraus. Für Javascript hilft uns das Pre-Commit-Dienstprogramm. Es verwendet Hook Git, gibt Ihnen aber die Möglichkeit, nicht in all diese Eingeweide zu gehen und die Galaxie zu verwalten, ohne npm zu verlassen. Darüber hinaus wird dieser Mechanismus beim Ändern des Repositorys nicht vergessen.





Gehen wir auf praktische Weise vor: Fügen Sie die Bibliothek zum Projekt hinzu





npm i pre-commit --save-dev
      
      



In package.json, fügen Sie den Build - Befehl an den pre-commit Abschnitt





"pre-commit": [
 "build"
],
      
      



Die gesammelten Bundle-Dateien werden jedoch nicht in das Commit aufgenommen, da Der Git muss die geänderten und hinzugefügten Dateien explizit angeben und das Hinzufügen von allem sieht ziemlich gefährlich aus. Damit alles ordnungsgemäß funktioniert, definieren wir den Befehl add-bundles, mit dem Bundle-Dateien hinzugefügt werden.





"scripts": {
 "build": "npx rollup --config rollup.config.js",
 "add-bundles": "git add dist/*",
 "test": "echo \"Error: no test specified\" && exit 1"
},
      
      



Fügen Sie den Befehl selbst zum Abschnitt vor dem Festschreiben hinzu





"pre-commit": [
 "build", "add-bundles"
],
      
      



Unmittelbar vor dem Festschreiben wird das Bundle sofort zusammengestellt und dem Festschreiben hinzugefügt. Wenn Sie ein vollständiges Arbeitsbeispiel benötigen, befindet sich eines im Repository dieser Bibliothek .





Dieses Paket enthält Analoga für andere Hooks, zum Beispiel diesen .








All Articles