-
Notifications
You must be signed in to change notification settings - Fork 364
Labels
Description
Problem
The npm run lint
command takes 2-3 minutes to complete, which significantly impacts:
- Developer productivity when Claude runs lint checks
- CI pipeline performance (2-3 minutes per run)
- Local development workflow
Root Causes
Based on analysis of the current ESLint configuration:
- Large codebase: 712 files (21MB) in
src/
directory - Type-aware linting: ESLint configured with TypeScript project references requiring full type checking
- Heavy plugins: Multiple performance-intensive plugins:
- TypeScript ESLint with
@typescript-eslint/no-floating-promises
rule - Vue plugin processing
.vue
files with TypeScript parser - i18n plugin with complex pattern matching (
@intlify/vue-i18n/no-raw-text
) - Prettier integration
- TypeScript ESLint with
Proposed Solutions
Quick wins:
- Enable ESLint caching:
eslint src --cache
- Selective rule disabling: Consider if
@typescript-eslint/no-floating-promises
is essential - File type filtering: Optimize file patterns if not all extensions needed
Long-term optimizations:
- Incremental linting: Only lint changed files in CI
- Parallel processing: Explore ESLint parallel execution options
- Rule audit: Review necessity of performance-heavy rules
Developer experience:
- Restrict automated lint execution: Add guidance to prevent Claude/automated tools from running
npm run lint
directly due to long execution time
Impact
- Current: 2-3 minutes per lint run
- Target: <30 seconds for typical development workflow
- Benefits: Faster CI, improved developer experience, more frequent lint usage
Environment
- Codebase: 712 files, 21MB
- ESLint config: Type-aware with multiple heavy plugins
- Current command:
eslint src
┆Issue is synchronized with this Notion page by Unito
christian-byrne and benceruleanlu