Instale as seguintes dependências:
yarn add -D husky @commitlint/{config-conventional,cli}
Feito isso, adicione ao package.json
o seguinte comando:
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
Isto será usado para acionar as regras do commitlint.
Crie um arquivo com o nome commitlint.config.js
e cole o código abaixo:
module.exports = {
rules: {
'type-enum': [
2,
'always',
[
':arrow_up_down:',
':art:',
':bug:',
':hammer:',
':heavy_check_mark:',
':memo:',
':rocket:',
':see_no_evil:',
':tada:'
]
],
'body-leading-blank': [2, 'always'],
'footer-leading-blank': [2, 'always'],
'header-max-length': [2, 'always', 72],
'header-min-length': [2, 'always', 10],
'scope-case': [2, 'always', 'lower-case'],
'subject-case': [2, 'always', ['sentence-case']],
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never', ['.']],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never']
},
parserPreset: {
parserOpts: {
headerPattern: /^(:\w*:)(?:\((.*?)\))?\s((?:.*(?=\())|.*)(?:\(#(\d*)\))?/,
headerCorrespondence: ['type', 'scope', 'subject', 'ticket']
}
}
}
Adicione o seguinte código ao package.json
.
"scripts": {
...,
"lint": "eslint --fix app config database start --ext .js"
},
...,
"husky": {
"hooks": {
"pre-commit": "yarn lint"
}
}
Garanta que o Eslint já esteja configurado, caso queira configurar, procure neste link.
🚀