0.3.2 • Published 1 year ago

@zanminkian/git-hooks v0.3.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

@zanminkian/git-hooks

npm.io npm.io npm.io npm.io npm.io

@zanminkian/git-hooks is now git-validator. Use git-validator instead.

This is a bundle of opinionated git hooks, all in one!

Replace husky, eslint, lint-staged, and commitlint in your project with this npm package.

Features

  • Unified package: Just ONE npm package to install replacing multiple.
  • Simple to use: Only two steps required; setting up scripts and installation.
  • Zero Configuration: Sensible default settings suitable for enterprise apps.

Usage

Set up the following scripts in your package.json:

  • git-hooks install: Installs hook files to {PROJECT_ROOT}/.git/hooks directory, which will check your code and commit messages after running the git commit command.
  • git-hooks format: Checks and formats all project files using the eslint --fix command.
  • git-hooks lint: Checks all project files using the eslint command.
{
  "scripts": {
    "postinstall": "git-hooks install",
    "format": "git-hooks format",
    "lint": "git-hooks lint"
  }
}

Next, install the package:

pnpm add -D @zanminkian/git-hooks

Now you can commit code to your project. Invalid code or commit messages will be automatically blocked.

How it Works

Running git-hooks install writes commit-msg and pre-commit files to the {PROJECT_ROOT}/.git/hooks directory.

  • The commit-msg file lints your git commit message before the commit is made.
  • The pre-commit file lints your staged code before the commit is made.

Advanced Usage

Working with husky

This library can work as a standalone package. However, if you have Husky 5 or a later version installed, you'll need to manually add .husky/commit-msg and .husky/pre-commit, as Husky will ignore the .git/hooks/commit-msg and .git/hooks/pre-commit:

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

.git/hooks/commit-msg $1
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

.git/hooks/pre-commit $1

Setup pre-push Stage

Running git-hooks install writes commit-msg and pre-commit files only. As git pre-push stage is widely used, you can run git-hooks install --pre-push <cmd> to setup git pre-push stage additionally.

{
  "scripts": {
    "postinstall": "git-hooks install --pre-push 'npm run test'"
  }
}

Customizing eslint Config

Under the hood, we use eslint to lint and format code. If you want to use a different eslint config, add your own .eslintrc.js at the root of your project. Here's an example:

module.exports = {
  rules: {
    // write your rules here
  }
}

Contributing

  • Clone this repository.
  • Enable Corepack using corepack enable (use npm i -g corepack for Node.js < 16.10).
  • Install dependencies using pnpm install.
  • Start coding and submit your PR.

Show your support

Give a ⭐️ if this project helped you!

License

MIT

0.3.0

1 year ago

0.2.7

1 year ago

0.2.6

1 year ago

0.2.8

1 year ago

0.3.2

1 year ago

0.3.1

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.2-beta.0

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago