husky 無效? 新版本 husky 怎么配置?


husky 沒有生效

安裝了 husky、lint-staged,並且完成配置。配置如圖:

 

 commit 的時候還是沒有效果,沒有去執行lint-staged

 

原因:husky的新版本和老版本是不一樣的,如上圖的配置,只適用 4.x

因此直接安裝 4.3.8版本的husky即可生效

 

關於新版本的husky,比老版本多了一個動作。

老版本:安裝 ——> 配置

新版本:安裝 ——> 啟用 ——> 生成 .husky相關配置

 

步驟:

  1. npm install husky --save-dev 安裝
  2. npx husky install  手動啟用husky
  3. npx husky add .husky/pre-commit "npm run lint-staged"  生成husky配置文件(執行完這一步,根目錄會有一個 .husky目錄)

完成這三步便可以正常使用了(前提是package.json里面的lint-staged已經配置好了)

 

上面的配置方法有一個問題:我們不可能每次 install 之后都需要手動去啟用husky,如果開發A配置好了並提交,開發B拉下代碼,裝完依賴還需要去手動啟用。

解決這個問題的辦法,在package.json的里面添加如下配置:

"scripts": { "prepare": "husky install" }

它的作用是:在husky安裝完之后,自動關聯啟用。這樣除了開發A需要關心husky配置之外,其他后續的開發人員是不需要關心husky配置的。

 

husky lint-staged 完整步驟

  1. npm install husky lint-staged prettier --save-dev
  2. npx husky install          【啟用】
  3. "prepare""husky install"  【install后自動啟用,這個操作一定要做,否則下次新拉代碼還需要手動啟用】
  4. npx husky add .husky/pre-commit "npm run lint-staged"  【創建一個hook,執行完根目錄回生成一個.husky目錄】
  5. 繼續在 scripts 里面添加  "lint": "eslint --ext .js,.jsx,.ts,.tsx src", "lint-staged": "lint-staged"
  6. package.json  里面添加     "lint-staged": { "**/*.{js,jsx,ts,tsx}": "npm run lint", "**/*.{js,jsx,tsx,ts,less,md}": [ "prettier --write" ] }

完成上述操作之后,就可以去試一試了。

 

 husky 7

 相關文檔:https://typicode.github.io/husky/#/?id=install


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM