@lcooper/commitlint-config
Version:
Shareable commitlint config for enforcing conventional commits
97 lines (71 loc) • 3.68 kB
Markdown
# @lcooper/commitlint-config
[](https://github.com/luciancooper/commitlint-config/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@lcooper/commitlint-config)
[](#license)
A sharable [commitlint](https://commitlint.js.org) config to enforce [conventional commits](https://conventionalcommits.org). Use with [`@commitlint/cli`](https://www.npmjs.com/package/@commitlint/cli).
## Installation
> Install with npm:
```bash
npm install --save-dev @commitlint/cli @lcooper/commitlint-config
```
> Install with yarn:
```bash
yarn add -D @commitlint/cli @lcooper/commitlint-config
```
## Usage
Add the `commitlint` field to your `package.json` file:
```json
"commitlint": {
"extends": [
"@lcooper",
]
}
```
Or create a commitlint config file type of your choice in the root folder of your project:
`.commitlintrc`
```json
{
"extends": [
"@lcooper"
],
}
```
`.commitlintrc.js`
```javascript
module.exports = {
extends: [
'@lcooper',
],
};
```
Check out the [commitlint docs](https://commitlint.js.org/concepts/shareable-config.html) for more details about sharable configs.
## Usage with Husky
You can configure a git commit message hook using [`husky`](https://github.com/typicode/husky), just add it as a `devDependency`.
If you are using `husky@v9`, follow the instructions on commitlints local setup [documentation page](https://commitlint.js.org/guides/local-setup.html).
To configure a husky commit message hook with `husky@v4`, add the following field to your `package.json`:
```json
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
```
## Rules
This config extends [`@commitlint/config-conventional`](https://www.npmjs.com/package/@commitlint/config-conventional), and defines the following types:
|Type |Title |Description |
|----------|------------------------|-------------------------------------------------------------|
|`build` |Builds |Changes that affect the build system or external dependencies|
|`chore` |Chores |Other changes that don't modify src or test files |
|`ci` |Continuous Integration |Changes to continuous integration files and scripts |
|`docs` |Documentation |Changes to documentation |
|`feat` |Features |A new feature |
|`fix` |Bug Fixes |A bug fix |
|`perf` |Performance Improvements|A code change that improves performance |
|`refactor`|Code Refactoring |A code change that neither fixes a bug nor adds a feature |
|`release` |Releases |Changes to prepare for a release |
|`revert` |Reverts |Reverts a previous commit |
|`style` |Styles |Formatting and white-space changes |
|`test` |Tests |Adding missing tests or correcting existing tests |
Additionally, the max line length of commit message headers, bodies and footers is `72` characters to enforce wrapping.
## License
[MIT](LICENSE)