Description
Repro
{
"parserOptions": {
"project": "./*/**/tsconfig.json"
}
}
I use
./*/**/tsconfig.json
to ignore the roottsconfig.json
so that it compares with the later configuration. Using./**/tsconfig.json
will not change the performance.
The @mufan/code-*
packages below involves symlinks.
Please let me know if this is not obvious enough so I can prepare an actual repro.
debug output
$ eslint .
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./node_modules/@bcoe/v8-coverage/dist/lib/tsconfig.json',
'./node_modules/@bcoe/v8-coverage/tsconfig.json',
'./node_modules/@mufan/code-boilerplates/tsconfig.json',
'./node_modules/@mufan/code-templates/tsconfig.json',
'./node_modules/@mufan/code/tsconfig.json',
'./node_modules/@mufan/eslint-plugin/src/tsconfig.json',
'./node_modules/fastq/test/tsconfig.json',
'./node_modules/rxjs/src/tsconfig.json',
'./node_modules/tsconfig-paths/test/tsconfig.json',
'./node_modules/uri-js/tsconfig.json',
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +3ms
typescript-eslint:typescript-estree:createProjectProgram Creating project program for: /root/workspace/magicspace/packages/cli/src/program/@command.ts +0ms
typescript-eslint:typescript-estree:createWatchProgram File did not belong to any existing programs, moving to create/update. /root/workspace/magicspace/packages/cli/src/program/@command.ts +0ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/cli/src/program/tsconfig.json. +0ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/core/src/library/tsconfig.json. +906ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/utils/src/library/tsconfig.json. +632ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/utils/src/test/tsconfig.json. +399ms
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./node_modules/@bcoe/v8-coverage/dist/lib/tsconfig.json',
'./node_modules/@bcoe/v8-coverage/tsconfig.json',
'./node_modules/@mufan/code-boilerplates/tsconfig.json',
'./node_modules/@mufan/code-templates/tsconfig.json',
'./node_modules/@mufan/code/tsconfig.json',
'./node_modules/@mufan/eslint-plugin/src/tsconfig.json',
'./node_modules/fastq/test/tsconfig.json',
'./node_modules/rxjs/src/tsconfig.json',
'./node_modules/tsconfig-paths/test/tsconfig.json',
'./node_modules/uri-js/tsconfig.json',
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +3s
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
typescript-eslint:typescript-estree:createProjectProgram Creating project program for: /root/workspace/magicspace/packages/cli/src/program/@space.ts +3s
typescript-eslint:typescript-estree:createWatchProgram Found existing program for file. /root/workspace/magicspace/packages/cli/src/program/@space.ts +1s
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./node_modules/@bcoe/v8-coverage/dist/lib/tsconfig.json',
'./node_modules/@bcoe/v8-coverage/tsconfig.json',
'./node_modules/@mufan/code-boilerplates/tsconfig.json',
'./node_modules/@mufan/code-templates/tsconfig.json',
'./node_modules/@mufan/code/tsconfig.json',
'./node_modules/@mufan/eslint-plugin/src/tsconfig.json',
'./node_modules/fastq/test/tsconfig.json',
'./node_modules/rxjs/src/tsconfig.json',
'./node_modules/tsconfig-paths/test/tsconfig.json',
'./node_modules/uri-js/tsconfig.json',
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +1s
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
typescript-eslint:typescript-estree:createProjectProgram Creating project program for: /root/workspace/magicspace/packages/cli/src/program/@types/prompts.d.ts +1s
typescript-eslint:typescript-estree:createWatchProgram Found existing program for file. /root/workspace/magicspace/packages/cli/src/program/@types/prompts.d.ts +1s
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./node_modules/@bcoe/v8-coverage/dist/lib/tsconfig.json',
'./node_modules/@bcoe/v8-coverage/tsconfig.json',
'./node_modules/@mufan/code-boilerplates/tsconfig.json',
'./node_modules/@mufan/code-templates/tsconfig.json',
'./node_modules/@mufan/code/tsconfig.json',
'./node_modules/@mufan/eslint-plugin/src/tsconfig.json',
'./node_modules/fastq/test/tsconfig.json',
'./node_modules/rxjs/src/tsconfig.json',
'./node_modules/tsconfig-paths/test/tsconfig.json',
'./node_modules/uri-js/tsconfig.json',
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +998ms
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
But if I change the project pattern and ignore the node_modules
before ignore list applied, then it lints a lot faster:
{
"parserOptions": {
"project": "./!(node_modules)/**/tsconfig.json"
}
}
debug output
$ eslint .
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +2ms
typescript-eslint:typescript-estree:createProjectProgram Creating project program for: /root/workspace/magicspace/packages/cli/src/program/@command.ts +0ms
typescript-eslint:typescript-estree:createWatchProgram File did not belong to any existing programs, moving to create/update. /root/workspace/magicspace/packages/cli/src/program/@command.ts +0ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/cli/src/program/tsconfig.json. +0ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/core/src/library/tsconfig.json. +843ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/utils/src/library/tsconfig.json. +641ms
typescript-eslint:typescript-estree:createWatchProgram Creating watch program for /root/workspace/magicspace/packages/utils/src/test/tsconfig.json. +385ms
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +2s
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +1ms
typescript-eslint:typescript-estree:createProjectProgram Creating project program for: /root/workspace/magicspace/packages/cli/src/program/@space.ts +2s
typescript-eslint:typescript-estree:createWatchProgram Found existing program for file. /root/workspace/magicspace/packages/cli/src/program/@space.ts +307ms
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +87ms
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
typescript-eslint:typescript-estree:createProjectProgram Creating project program for: /root/workspace/magicspace/packages/cli/src/program/@types/prompts.d.ts +87ms
typescript-eslint:typescript-estree:createWatchProgram Found existing program for file. /root/workspace/magicspace/packages/cli/src/program/@types/prompts.d.ts +87ms
typescript-eslint:typescript-estree:parser parserOptions.project matched projects: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +20ms
typescript-eslint:typescript-estree:parser ignore list applied to parserOptions.project: [
'./packages/cli/src/program/tsconfig.json',
'./packages/core/src/library/tsconfig.json',
'./packages/utils/src/library/tsconfig.json',
'./packages/utils/src/test/tsconfig.json'
] +0ms
Versions
package | version |
---|---|
@typescript-eslint/typescript-estree |
3.9.0 |
@typescript-eslint/parser |
3.9.0 |
TypeScript |
3.9.7 |
node |
14.4.0 |
npm |
n/a |