commit-prettier
v1.1.1
Published
Format git commit messages with creative emojis
Readme
commit-prettier
commit-prettier is a light-weight CLI that enhances your commit messages by appending an emoji related to the type of commit you make. It seamlessly integrates with commitlint, supporting all standard commit types including:
| Type | Emoji |
| ------------- | ------------- |
| build | 🏗️ |
| chore | 🧹 |
| ci | 👷 |
| docs | 📄 |
| feat | ✨ |
| fix | 🐛 |
| perf | ⚡️ |
| refactor | ♻️ |
| revert | ⏪️ |
| style | 🌈 |
| test | 🧪 |
Features
- Emoji Prefixes: Automatically adds an emoji as a prefix to your commit messages after they pass commitlint checks, making your commit history more expressive and easier to navigate.
- Branch Name Prefixes: Automatically adds branch name into commit scope if there is no scope provided (default is off).
- Commitlint Compatibility: Fully compatible with all commitlint types, ensuring your commit messages are both fun and professional.
- Easy Integration: Works with existing git hooks and can be integrated smoothly into your workflow.
Getting Started
Installation
Using npm:
npm install --save-dev commit-prettieror if you prefer using Yarn:
yarn add --dev commit-prettierSetup
To integrate commit-prettier with Husky (version >= 6.0.0), follow these steps:
- First, ensure you have Husky installed. If not, please follow the instructions.
- Create a
commit-msgfile in the.huskydirectory with the following content:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run commit-prettier $1- Add
commit-prettiercommand intopackage.json:
{
"scripts": {
"commit-prettier": "commit-prettier --branch"
}
}NOTE: Make sure to make the script executable by running:
chmod +x .husky/commit-msgThat's all!
Optional: work with conventional commits
It's a great idea to integrate commit-prettier with commitlint. To make it work, please follow the following steps:
- Install @commitlint/cli and @commitlint/config-conventional and save as
devDependencies:
npm install --save-dev @commitlint/cli @commitlint/config-conventionalor
yarn add --dev @commitlint/cli @commitlint/config-conventional- Inside the
.husky/commit-msg:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run commitlint $1 # Add this command before commit-prettier
npm run commit-prettier $1- Add
commitlintcommand intopackage.json:
{
"scripts": {
"commitlint": "commitlint --edit"
}
}- Add
commitlint.config.jsin the project root directory:
module.exports = {
extends: ['@commitlint/config-conventional'],
parserPreset: {
parserOpts: {
headerPattern: new RegExp(`^(?<emoji>.*\\s)?(?<type>\\w*)(?<scope>\\(.+\\))?:\\s(?<subject>.*)$`, 'u'),
headerCorrespondence: ['emoji', 'type', 'scope', 'subject'],
},
},
rules: {
// We don't need to enforce the subject to be in a specific case.
'subject-case': [0],
// Sometimes Jira ticket title would be quite long.
'header-max-length': [0],
},
};Usage
Once everything is set up, you can start committing with:
git commit -m "feat(homepage): achieve UI revamp 2.0"
// Output: ✨ feat(homepage): achieve UI revamp 2.0If you need to work with a ticket system and have enough of typing this number, you can enable the --branch option in your package.json file:
{
"scripts": {
"commit-prettier": "commit-prettier --branch",
}
}Then commit-prettier will do this for you! 💅
git commit -m "style: add confetti animation on the login page"
// Output: 🌈 style(JA-1234): add confetti animation on the login pageIf your team does not require members to follow conventional commits, but you still want formatted commits, this plugin is what you need.
git commit -m "Achieve UI revamp 2.0"
// Output: ✨ feat(homepage): Achieve UI revamp 2.0