@morev/commitlint-config
v0.2.2
Published
Shareable commitlint configuration
Readme
@morev/commitlint-config
Shareable commitlint configuration.
Table of contents:
Installation
Using yarn
yarn add @morev/commitlint-configUsing npm
npm install @morev/commitlint-configUsing pnpm
pnpm add @morev/commitlint-configUsage
Basic usage
Create a .commitlintrc.cjs file in the project root:
echo -e "module.exports = {\n\textends: ['@morev/commitlint-config'],\n\trules: {},\n};" > .commitlintrc.cjsThe command above will create a .commitlintrc.cjs file with the following content:
module.exports = {
extends: ['@morev/commitlint-config'],
rules: {},
};It's recommended to create
.commitlintrc.cjsfile instead ofcommitlint.config.jsbecause by using this naming strategy you can keep your Commitlint configuration file consistent across packages regardless of whether the package has"type": "module"or"type": "commonjs".
Advanced usage
If you need fine-grained control, you can import the entire config directly and manipulate it as a JavaScript object:
const config = require('@morev/commitlint-config');
// Replace the `header-min-length` rule with custom settings
config.rules['header-min-length'] = [2, 'always', 5];
module.exports = config;Also you can use the built-in utility to modify type-enum rule for each project in a more elegant way:
const { modifyTypeEnum } = require('@morev/commitlint-config/utils');
const config = require('@morev/commitlint-config');
module.exports = modifyTypeEnum(config, {
add: ['temp'],
remove: ['nvm'],
});
// Now you can use `temp` as a type and cannot use `nvm`, rest types remain as is.Built-in type enum
| type | Description |
| -----------|-------------|
| feat | A new feature related to a production code. |
| fix | A bug fix related to a production code. |
| refactor | A production code change that neither fixes a bug nor adds a feature. |
| perf | A less generic subset of refactor, a code change that improves performance. |
| test | Adding new/missing tests or correcting existing tests. |
| docs | Documentation changes. |
| chore | Updating accompanying code (linters, builders, library versions, etc.) without affecting the production code. |
| ci | A less generic subset of chore related to CI changes only. |
| release | A less generic subset of chore related to changes that only bumps the version and update CHANGELOG.md. |
| revert | Used for commits that revert another commit. |
| wip | Shortened form of work in progress For commits that should be in the public repository but represent a feature that is not yet ready. |
| nvm | Shortened form of nevermind For commits that have no value to other developers, which can be skipped when analyzing changes. |
| build | Not recommended to use nowadays. Used for legacy projects that provide build artifacts as part of the repository. |
