コードがコミットとリポジトリに入る前に実行する必要がある特定のアクションがあるため、少なくとも後で毎回リベースする必要はありません。ここで説明するソリューションは短くて単純ですが、開発者の作業がはるかに簡単になります。
最も明白な目的はテストを実行することですが、私にとってはバンドルを構築することでもあります。私はwatchを使用せず、定期的に手動でビルドコマンドを実行するのを忘れているため、関連性のないバージョンのバンドルがコミットされることが多く、次に現在のバンドルをコミットする必要があります。それはあまりきれいではないことがわかります。javascriptの場合、pre-commitユーティリティが役立ちます。それはフックgitを使用しますが、npmを離れることなく、これらすべての内臓に入らずに銀河を管理する機会を与えてくれます。さらに、リポジトリを変更するときに、このようなメカニズムを忘れることはありません。
実用的な方法で行きましょう:プロジェクトにライブラリを追加します
npm i pre-commit --save-dev
package.jsonで、ビルドコマンドをpre-commitセクションに追加します
"pre-commit": [
"build"
],
ただし、収集されたバンドルファイルはコミットに含まれません。gitは、変更および追加されたファイルを明示的に示す必要があり、すべてを追加することはかなり危険に見えます。すべてが正しく機能し始めるために、バンドルファイルを追加するadd-bundlesコマンドを定義しましょう。
"scripts": {
"build": "npx rollup --config rollup.config.js",
"add-bundles": "git add dist/*",
"test": "echo \"Error: no test specified\" && exit 1"
},
そして、コマンド自体をpre-commitセクションに追加します
"pre-commit": [
"build", "add-bundles"
],
これで、コミットの直前に、バンドルがすぐにアセンブルされ、コミットに追加されます。完全に機能する例が必要な場合は、このライブラリのリポジトリに1つあります。
このパッケージには、他のフックの類似物が含まれています。たとえば、これです。