Emoji Commit Helpers
This module assist users in using the Emoji-style git commit format :emoji: (scope) Subject. It currently makes sharing emoji and scope possible between Commitizen and Commitlint easy and can automatically generate package-based scopes for Lerna projects.
Configuring Commitizen and Commitlint
Commitizen
In package.json, add the following:
{
"config": {
"commitizen": {
"path": "./node_modules/emoji-commit-helpers/commitizen.js"
}
}
}
Commitlint
In .commitlintrc.js, do the following:
const config = require('emoji-commit-helpers/commitlint');
module.exports = config;
This will set all the rules, patterns, and helpers you need correctly. The commitlint configuration supports either the actual emoji or the emoji code (:code:).
Run Both on Code Commit
To run both Commitizen (to prepare your commit message) and Commitlint (to ensure your commit message is formatted correctly) automatically, first install husky, @commitlint/cli, and @commitizen, then add the following to your package.json file:
{
"husky": {
"hooks": {
"prepare-commit-msg": "exec < /dev/tty && git-cz --hook || true",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
}
Configuring Emoji Commit Helpers
To configure Emoji Commit Helpers, first add one of the following files:
.commitrc.commitrc.yml.commitrc.json.commitrc.js
Then, configure either the types to include and/or the scopes:
emoji:
- style
- perf
- prune
- fix
- quickfix
- docs
- feature
scopes:
- name: Root
description: Root of my project
- name: Modules
description: Project Modules
Available Emoji
| Type | Emoji | Code | Description |
|---|---|---|---|
| style | :art: |
Improving structure / format of the code. | |
| perf | :racehorse: |
Improving performance. | |
| prune | :fire: |
Removing code or files. | |
| fix | :bug: |
Fixing a bug. | |
| quickfix | :ambulance: |
Critical hotfix. | |
| feature | :new: |
Introducing new features. | |
| docs | :memo: |
Writing docs. | |
| deploy | :rocket: |
Deploying stuff. | |
| ui | :gem: |
Updating the UI and style files. | |
| init | :tada: |
Initial commit. | |
| test | :white_check_mark: |
Adding tests. | |
| security | :lock: |
Fixing security issues. | |
| release | :bookmark: |
Releasing / Version tags. | |
| lint | :shirt: |
Removing linter warnings. | |
| wip | :construction: |
Work in progress. | |
| fix-ci | :green_heart: |
Fixing CI Build. | |
| downgrade | :arrow_down: |
Downgrading dependencies. | |
| upgrade | :arrow_up: |
Upgrading dependencies. | |
| pushpin | :pushpin: |
Pinning dependencies to specific versions. | |
| refactoring | :recycle: |
Refactoring code. | |
| dep-add | :heavy_plus_sign: |
Adding a dependency. | |
| dep-rm | :heavy_minus_sign: |
Removing a dependency. | |
| config | :wrench: |
Changing configuration files. | |
| compat | :alien: |
Updating code due to external API changes. | |
| mv | :truck: |
Moving or renaming files. | |
| breaking | :boom: |
Introducing breaking changes. | |
| docs-code | :bulb: |
Documenting source code. | |
| ux | :children_crossing: |
Improving user experience / usability. | |
| see-no-evil | :see_no_evil: |
Adding or updating a .gitignore file | |
| camera-flash | :camera_flash: |
Adding or updating snapshots | |
| experiment | :crystal_ball: |
Experimenting new things |