I had the same issue and was able to overcome it by adding this section to my package.json, which configures commitlint to use config-conventional.

"commitlint": {
  "extends": [
    "@commitlint/config-conventional"
  ]
},

Also ensure that you installed both dev dependencies.

"@commitlint/cli": "18.0.0",
"@commitlint/config-conventional": "18.0.0",

You can find this also in the commitlint projects package.json. ;- ) https://github.com/conventional-changelog/commitlint/blob/master/package.json

Answer from lars on Stack Overflow
🌐
Commitlint
commitlint.js.org › reference › configuration.html
Configuration | commitlint
Specify configurations to extend via the .extends key, using ids that can be resolved by the node resolve algorithm. This means installed npm packages and local files can be used. ... export default { extends: [ 'lerna' // prefixed with commitlint-config-*, '@commitlint/config-conventional' // scoped packages are not prefixed ] }
🌐
npm
npmjs.com › package › @commitlint › config-conventional
commitlint/config-conventional
March 15, 2026 - npm install --save-dev @commitlint/config-conventional @commitlint/cli echo "export default {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
      » npm install @commitlint/config-conventional
    
Published   Mar 15, 2026
Version   20.5.0
🌐
GitHub
github.com › conventional-changelog › commitlint
GitHub - conventional-changelog/commitlint: 📓 Lint commit messages
Add a package.json file, declaring your project as an ES6 module. This can be done easily by running npm init es6. Rename the config file from commitlint.config.js to commitlint.config.mjs.
Starred by 18.5K users
Forked by 965 users
Languages   TypeScript 92.2% | JavaScript 7.8%
🌐
Commitlint
commitlint.js.org › guides › getting-started.html
Getting started | commitlint
# Here we use the node command to avoid encoding issue on Windows. node -e "fs.writeFileSync('commitlint.config.js', process.argv[1])" "export default { extends: ['@commitlint/config-conventional'] };"
🌐
Commitlint
commitlint.js.org
commitlint
By supporting npm-installed configurations it makes sharing of commit conventions easy. ... Get high commit message quality and short feedback cycles by linting commit messages right when they are authored. ... To get the most out of commitlint you'll want to automate it in your project lifecycle.
🌐
Medium
trishan9.medium.com › what-is-commitlint-why-to-use-how-to-setup-and-more-2832d50ccff3
What is Commitlint? Why to use? How to Setup and more | by Trishan Wagle | Medium
September 8, 2023 - How to setup Commitlint in your project: Step 1: Install Commitlint ``` # Install and configure if needed npm install — save-dev @commitlint/{cli,config-conventional} # For Windows: npm install — save-dev @commitlint/config-conventional ...
🌐
Commitlint
commitlint.js.org › concepts › shareable-config.html
Concept: Shareable configuration | commitlint
You can also load local configuration ... options. You can provide the full path of the package like: ... export default { extends: ["@commitlint/config-conventional"], // => @commitlint/config-conventional };...
🌐
GitHub
github.com › conventional-changelog › commitlint › tree › master › @commitlint › config-conventional
commitlint/@commitlint/config-conventional at master · conventional-changelog/commitlint
npm install --save-dev @commitlint/config-conventional @commitlint/cli echo "export default {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
Author   conventional-changelog
Find elsewhere
🌐
freeCodeCamp
freecodecamp.org › news › how-to-use-commitlint-to-write-good-commit-messages
How to Write Good Commit Messages with Commitlint
November 12, 2021 - Now these commits can have different ... for this example. This would require me to override the type-enum rule in the conventional commits convention. To do this, I will create a rules object in my commitlint config and add button as a type. This is how our commitlint.config.js should ...
🌐
GitHub
github.com › positive-js › commitlint-config
GitHub - positive-js/commitlint-config: Commitlint configuration
Create file commitlint.config.js with extending preset and define set of scopes: module.exports = { extends: ['@ptsecurity/commitlint-config'], rules: { 'scope-enum': [ 2, 'always', [ // as examples 'app', 'common' ] ] } }; Add to package.json ...
Author   positive-js
🌐
DEV Community
dev.to › thecharacterv › git-better-with-commitlint-and-conventional-commits-21pp
Git Better with Commitlint and Conventional Commits - DEV Community
May 26, 2023 - This will create the file commitlint.config.js and sets commitlint to use the pre-configured rules from the config-conventional package
🌐
Commitlint
commitlint.js.org › reference › examples.html
Examples | commitlint
This example uses inline parserOpts to configure the parser to recognize custom issue prefixes (e.g. PROJ-123). The references-empty rule then enforces that every commit references a ticket. ... { // ... "commitlint": { "rules": { "references-empty": [2, "never"], }, "parserPreset": { "parserOpts": ...
🌐
GitHub
github.com › dwp › commitlint-config-base
GitHub - dwp/commitlint-config-base: Shareable `commitlint` config enforcing our commit convention
Add a commitlint.config.js file that looks something like:
Starred by 2 users
Forked by 3 users
Languages   JavaScript 100.0% | JavaScript 100.0%
🌐
Commitlint
commitlint.js.org › reference › rules-configuration.html
Rules configuration | commitlint
Rule configurations are either of type array residing on a key with the rule's name as key on the rules object or of type function returning type array or Promise<array>. This means all of the following notations are supported. commitlint.config.js · js · export default { // ...
🌐
npm
npmjs.com › package › @commitlint › config-angular
commitlint/config-angular
March 15, 2026 - npm install --save-dev @commitlint/config-angular @commitlint/cli echo "export default {extends: ['@commitlint/config-angular']};" > commitlint.config.js
      » npm install @commitlint/config-angular
    
Published   Mar 15, 2026
Version   20.5.0
🌐
Commitlint
commitlint.js.org › guides › ci-setup.html
Guide: CI Setup | commitlint
steps: - checkout: self fetchDepth: 0 - task: NodeTool@0 inputs: versionSpec: "20.x" checkLatest: true - script: | git --version node --version npm --version npx commitlint --version displayName: Print versions - script: | npm install conventional-changelog-conventionalcommits npm install commitlint@latest displayName: Install commitlint - script: npx commitlint --last --verbose condition: ne(variables['Build.Reason'], 'PullRequest') displayName: Validate current commit (last commit) with commitlint - script: | echo "Accessing Azure DevOps API..." response=$(curl -s -X GET -H "Cache-Control: n
🌐
npm
npmjs.com › package › @dfaas › commitlint-config
@dfaas/commitlint-config - npm
repos: - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook rev: v9.11.0 hooks: - id: commitlint stages: [commit-msg, manual] additional_dependencies: ['@dfaas/commitlint-config'] It is also possible to run commitlint manually against the last commit, for example as part of your CI process via pre-commit.
      » npm install @dfaas/commitlint-config
    
Published   Jul 23, 2024
Version   1.1.1
Author   Netherlands Forensic Institute
🌐
Snyk
snyk.io › advisor › @commitlint/config-conventional › @commitlint/config-conventional code examples
commitlint/config-conventional Code Examples
const commitTypes = require('commit-types-peakfijn'); const config = require('@commitlint/config-conventional'); config.rules['header-max-length'] = [2, 'always', 80]; config.rules['scope-empty'] = [2, 'always']; config.rules['subject-min-length'] = [2, 'always', 15]; config.rules['type-enum'] = [2, 'always', Object.keys(commitTypes)]; module.exports = config; meteorlxy / vssue / .commitlintrc.js View on Github