DEV Community

Kay Gosho
Kay Gosho

Posted on

12 1

I've replaced husky with simple-git-hooks

I've been using husky for over 2 years and was a big fan of it. However, husky v5 enforces us to update our husky configuration.

Since v5 design concept is completely different from v4, we should update husky configuration file and create .husky directory regarding to the documentation. Then add some test commits and confirms our migration has been completed.

https://github.com/typicode/husky

To be honest, I was disappointed these changes. I understand maintaining OSS is a hard task and there should be an appropriate reason, but I don't want to "migrate" these changes. "Just work" is the best and there should not be a long documentation.

https://typicode.github.io/husky/

My colleague's PC didn't trigger a pre-commit hook which made me mad. I'm sorry for people who sends pull requests to my own OSS.

Furthermore, I personally don't like the design of husky v5. Why we should create the .husky directory, what will happen on husky install? What is husky.sh and .husky/_?

Also, husky changes .git/config without confirmation, which might cause issues using with other git hooks tools. I just wanted to run Prettier before git commit!

I've ended up to say goodbye to husky and install simple-git-hooks. It works like a charm!

https://github.com/toplenboren/simple-git-hooks

The setup is pretty easy. All we should do is:

yarn add -D simple-git-hooks
Enter fullscreen mode Exit fullscreen mode
  "scripts": {
    "prepare": "simple-git-hooks"
  },
  "simple-git-hooks": {
    "pre-commit": "npx lint-staged"
  }
Enter fullscreen mode Exit fullscreen mode

I'll live with simple-git-hooks. Thank you @toplenboren .

If you migrate from husky, don't forget to revert the git config husky modified.

yarn remove husky
rm -rf .husky
git config core.hooksPath .git/hooks/
Enter fullscreen mode Exit fullscreen mode

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (6)

Collapse
 
vanduc1102 profile image
Duc Nguyen • Edited

I moved away husky because of this issue github.com/typicode/husky/issues/991 ,

Having RUN yarn install --ignore-scripts is not a good idea for me.

Not sure why they dont fix the issue.

Collapse
 
acro5piano profile image
Kay Gosho

That's a good point. Husky is too complicated for people to predict its behavior.

Collapse
 
derekroberts profile image
Derek Roberts

Thanks for the quick and useful read! Your section reverting husky git hooks saved lots of time. :)

Collapse
 
acro5piano profile image
Kay Gosho

Thanks for your comment! I'm happy it was useful for you ;)

Collapse
 
toplenboren profile image
Mikhail Gorbunov

Thank you! I'm glad you find the package useful <3

Collapse
 
acro5piano profile image
Kay Gosho

Thanks for the comment! I love it!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay