Skip to content

Docker image and @commitlint/config-nx-scopes #4427

Open
@gperdomor

Description

@gperdomor

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions