conventional-changelog/commitlint

Docker image and @commitlint/config-nx-scopes

Closed

#4,427 opened on May 29, 2025

 (1 comment) (0 reactions) (0 assignees)TypeScript (896 forks)batch import
bughelp wanted

Repository metrics

Stars
 (15,497 stars)
PR merge metrics
 (Avg merge 12h 56m) (52 merged PRs in 30d)

Description

Steps to Reproduce

  1. Create a Gitlab CI job similar to this:
lint:commit:
  image:
    name: registry.hub.docker.com/commitlint/commitlint:19.8.1
    entrypoint: ['']
  stage: affected
  script:
    - npm i -g nx@$(node -pe "require('./package.json').devDependencies.nx")
    - commitlint --from ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --to ${CI_COMMIT_SHA}
  1. And a config file like:
import nxScopes from '@commitlint/config-nx-scopes';
import { type UserConfig, RuleConfigSeverity } from '@commitlint/types';

const { utils } = nxScopes;

const Configuration: UserConfig = {
  extends: ['@commitlint/config-conventional', '@commitlint/config-nx-scopes'],
  rules: {
    // @ts-expect-error nx-scopes is not typed
    'scope-enum': async (ctx) => [
      RuleConfigSeverity.Error,
      'always',
      ['deps', 'release', ...(await utils.getProjects(ctx))],
    ],
  },
};

export default Configuration;

Current Behavior

Basically the commitlint command fails with:

$ commitlint --from ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --to ${CI_COMMIT_SHA}
file:///usr/local/lib/node_modules/@commitlint/cli/lib/cli.js:132
        throw err;
        ^
Error: Cannot find module '@commitlint/config-nx-scopes'
Require stack:
- /builds/flex/web/.commitlintrc.ts
    at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
    at Function.resolve (node:internal/modules/helpers:188:19)
    at jitiResolve (/usr/local/lib/node_modules/@commitlint/load/node_modules/jiti/dist/jiti.cjs:1:187220)
    at jitiRequire (/usr/local/lib/node_modules/@commitlint/load/node_modules/jiti/dist/jiti.cjs:1:189288)
    at import (/usr/local/lib/node_modules/@commitlint/load/node_modules/jiti/dist/jiti.cjs:1:199778)
    at /builds/flex/web/.commitlintrc.ts:1:248
    at eval_evalModule (/usr/local/lib/node_modules/@commitlint/load/node_modules/jiti/dist/jiti.cjs:1:196325)
    at jitiRequire (/usr/local/lib/node_modules/@commitlint/load/node_modules/jiti/dist/jiti.cjs:1:190233)
    at Function.import (/usr/local/lib/node_modules/@commitlint/load/node_modules/jiti/dist/jiti.cjs:1:199778)
    at file:///usr/local/lib/node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader/dist/esm/loader.mjs:8:41
    at tsLoader (file:///usr/local/lib/node_modules/@commitlint/load/lib/utils/load-config.js:13:16)
    at #loadConfiguration (/usr/local/lib/node_modules/@commitlint/load/node_modules/cosmiconfig/dist/Explorer.js:116:42)
    at #loadConfigFileWithImports (/usr/local/lib/node_modules/@commitlint/load/node_modules/cosmiconfig/dist/Explorer.js:87:[60](https://gitlab.falabella.tech/flex/web/-/jobs/44031672#L60))
    at #readConfiguration (/usr/local/lib/node_modules/@commitlint/load/node_modules/cosmiconfig/dist/Explorer.js:84:88)
    at async search (/usr/local/lib/node_modules/@commitlint/load/node_modules/cosmiconfig/dist/Explorer.js:50:40)
    at async Explorer.search (/usr/local/lib/node_modules/@commitlint/load/node_modules/cosmiconfig/dist/Explorer.js:78:20)
    at async loadConfig (file:///usr/local/lib/node_modules/@commitlint/load/lib/utils/load-config.js:53:19)
    at async load (file:///usr/local/lib/node_modules/@commitlint/load/lib/load.js:24:20)
    at async main (file:///usr/local/lib/node_modules/@commitlint/cli/lib/cli.js:200:20) {
  name: '_TypeScriptCompileError',
  filepath: '/builds/flex/web/.commitlintrc.ts'
}
Node.js v18.20.8

Expected Behavior

Should works without errors

Affected packages

  • cli
  • core
  • prompt
  • config-angular

Possible Solution

No response

Context

No response

commitlint --version

18.9.1

git --version

2.47.2 - In docker

node --version

18 - In docker

Contributor guide