ITADN

fix: docker image throws error for TypeScript config files

#4623Opendanieldecsi 创建于 2026-02-02
bug
D
danieldecsicommented
### Steps to Reproduce ```bash 1. Create this config file: `.commitlintrc.ts` import { RuleConfigSeverity } from '@commitlint/types'; import type { UserConfig } from '@commitlint/types'; export default { extends: ['@commitlint/config-conventional'], rules: { 'header-max-length': [RuleConfigSeverity.Error, 'always', 100], }, } satisfies UserConfig; 2. Run commitlint with the provided pre-built Docker image from Docker Hub: `docker run --rm -it -v $(pwd):/app -w /app commitlint/commitlint:20.4.1 --last` ``` ### Current Behavior Throws this error: ``` Error: Cannot find module '@commitlint/types' Require stack: - /app/.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 /app/.commitlintrc.ts:1:216 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) 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: '/app/.commitlintrc.ts' ``` ### Expected Behavior Should work without errors. ### Affected packages - [x] cli - [ ] core - [ ] prompt - [ ] config-angular ### Possible Solution What I managed to figure out is that underlaying compiler that deals with TypeScript can't import @commitlint/types because it is installed globally. If it is installed locally it works well (we use commitlint also as a husky commit-msg hook and it works there without issues). ### Context _No response_ ### commitlint --version 20.4.0 ### git --version 2.39.2 ### node --version 18.x
3 条评论