Hi! I'm fighting with performance for https://github.com/typescript-eslint/typescript-eslint. We have a large, multi project (in the tsconfig.json sense) repo. We run our typescript compiles (to find compilation errors) by using
tsc -b one_subproject/tsconfig.json, running parallel
tsc's per the topological sort of the dependency graph. This gives us enough parallelism that our overall tsc build is slow but not devastatingly so. (We also bump up the default heapsizes for tsc.) I'm trying to apply this same pattern for eslint (run it on one tsconfig.json at a time), and, for our bigger ones, eslint is seemingly spinning forever. Whenever I interrupt it with
llnode to see where it's at, it's usually compiling typescript. For some projects it finishes, and for others it runs out of memory.
I'm looking for any context on how typescript-eslint interacts with typescript, and whether there are any caches that I can manipulate directly. i.e., I'd be perfectly happy to do a full typescript build first, if then eslint could use
declarations/, perhaps? I'm slogging through it, but I'd appreciate any suggestions. (I've read https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/MONOREPO.md and definitely typescript-eslint/typescript-eslint#1192 seems related, and I'm trying to work around it by doing one project at a time.)