0.1.1 • Published 4 years ago

emoji-commit-helpers v0.1.1

Weekly downloads
32
License
Apache-2.0
Repository
github
Last release
4 years ago

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

TypeEmojiCodeDescription
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