Repository navigation
Lint: drop the tsc --build prerequisite and ESLint projectService (CL-7416) - #628
Merged
Merged
Conversation
Contributor
Author
Self-reviewVerified the PR's specific claims directly; no defects found, nothing to fix.
Targeted tests: |
…-7416) The strict/stylistic tseslint rule sets plus core rules use no type information, so parserOptions.projectService (which required a prior tsc --build to resolve referenced projects' emitted dist/*.d.ts, and the 6GB heap flag to support it) was pure overhead. Verified eslint's findings are byte-for-byte identical before and after (0 errors, 10 warnings); bun run lint drops from ~61s to ~12s.
TheGreatAxios
force-pushed
the
cl-7416-lint-drop-projectservice
branch
from
September 4, 2026 13:46
324bc61 to
b13412c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The lint rule set (
tseslint.configs.strict+stylistic+ core rules) uses no type information, buteslint.config.tsenabledparserOptions.projectService, which needs a priortsc --buildto resolve referenced projects through emitteddist/*.d.ts. That drove thetsc --build tsconfig.build.json &&prerequisite and theNODE_OPTIONS=--max-old-space-size=6144heap flag in thelintscript, neither of which any enabled rule needs. This removeslanguageOptions/projectService/tsconfigRootDirfromeslint.config.tsand simplifies thelintscript toprettier --check --cache . && eslint --cache ..Verification
bunx eslint .findings, byte-for-byte identical before and after:time bun run lint:41.74s user 4.79s system 76% cpu 1:00.99 total13.94s user 0.56s system 117% cpu 12.325 totalbunx tsc -p tsconfig.json --noEmiton the root project passes clean.CI's
lintjob cache key already hasheseslint.config.tsand runs onlybun run lint— no CI step relies ondist/existing beforehand. No docs mention the removed mechanics;scripts/generate-tsconfig-references.tsandscripts/typecheck.tsreferencetsc --build/projectServiceonly for the separatebun run typecheckpath, untouched here.