GitHook浠嬬粛GitHook鏄竴涓剼鏈紝鍙互鍦℅it鎵ц涓€涓懡浠ゅ墠鍚庤Е鍙戯紝姣斿pre-commit锛屽湪鎻愪氦鍓嶆墽琛屼竴浜涗笢瑗匡紝鍦ㄤ腑涔熺敤鐨勬瘮杈冨鍓嶇绯荤粺AHook甯哥敤Husky鍜宭int-staged鏉ユ鏌ユ彁浜ゅ墠鐨勪唬鐮併€傝繕鏈夊叾浠栫殑锛屾瘮濡俻re-rebase锛宲ost-rewrite锛宲ost-checkout锛宲ost-merge锛岀湅鍚嶅瓧灏辩煡閬撳畠浠殑鎵ц鏃堕棿銆傚浣曞揩閫熷垱寤鸿嚜宸辩殑閽╁瓙锛熷垱寤轰竴涓枃浠讹紝鍛藉悕涓虹浉搴旂殑閽╁瓙鍚嶇О锛屼娇鐢ㄤ换浣曡瑷€銆傝繖閲屼娇鐢ㄧ殑nodejs灏嗘枃浠舵斁鍦ㄩ」鐩笅鐨?git/hookschmod777xxx锛堜綘鐨勬枃浠讹級锛屼娇鐢ㄥ搴旂殑git鍛戒护灏嗘枃浠朵慨鏀逛负鍙墽琛屾枃浠躲€傞挬瀛愮幇鍦ㄧ敓鏁堜簡銆傛湰鏂囦富瑙掟煈塸re-commit鐩存帴涓婁紶浠g爜#!/usr/bin/envnodeconst{execSync}=require('child_process');//client鏂囦欢澶瑰悕constclient='client-src';try{conststagedFile=execSync('gitdiff--cached--name-only',{encoding:'utf-8'});//鎻愪氦鐨勬枃浠跺寘鎷琧lient涓嬬殑鏂囦欢锛屼笉鍖呮嫭views/index.htmlif(stagedFile.includes(client)&&!stagedFile.includes('index.html')){execSync(`cd${client}&&npmrunbuild`)process.exit(1)}else{process.exit(0)}}catch(e){console.log(e);process.exit(1)}杩欐浠g爜鐨勭洰鐨勬槸褰搒taged鏂囦欢涓寘鍚玞lient涓嬬殑鏂囦欢鏃讹紝鎵цclient涓嬬殑build锛岃繖鍜屾垜浠殑椤圭洰缁撴瀯鏈夊叧銆俫itdiff--cached--name-only鏄幏鍙杝tage鏂囦欢锛屽彲浠ユ牴鎹潯浠舵墽琛屼竴浜涢€昏緫銆俻rocess.exit(0)鍙互缁х画鎵цcommit锛宺eturn涓嶆槸0浼氫腑鏂璫ommit銆傚お绠€鍗曪紵灏辫繖涔堢畝鍗曪紝浣嗘槸涓嶅緱涓嶈git鏄釜搴炲ぇ鐨勬妧鏈爤锛屽懡浠ゆ暟涓嶈儨鏁扳€︹€﹀揩鍘昏瘯璇曡嚜宸辩殑hook鍚鍒繕浜哻hmod777缁欐枃浠跺彲鎵ц鏉冮檺~
