with one click
eslint-monorepo-performance
Official ESLint and typescript-eslint performance tuning for large monorepos (cache strategy, concurrency, typed-linting scope, profiling).
Menu
Official ESLint and typescript-eslint performance tuning for large monorepos (cache strategy, concurrency, typed-linting scope, profiling).
Type-safe SQL ORM for TypeScript with zero runtime overhead
TypeScript-first schema validation library with static type inference for form validation, API validation, and runtime type checking with compile-time types.
Official ESLint + typescript-eslint + boundaries best practices for enterprise monorepos (flat config, typed linting, architectural boundaries, CI quality gates).
Official Pino logging best practices - structured JSON logging with child loggers, serializers, transports, and request-scoped logging for production applications.
Changesets for versioning and changelog management in monorepos. Use when managing package versions, generating changelogs, or publishing packages. Use for changesets, versioning, changelog, semver, monorepo-versioning, release, publish, bump.
Data modeling with Entity-Relationship Diagrams (ERDs), data dictionaries, and conceptual/logical/physical models. Documents data structures, relationships, and attributes.
| name | eslint-monorepo-performance |
| description | Official ESLint and typescript-eslint performance tuning for large monorepos (cache strategy, concurrency, typed-linting scope, profiling). |
| metadata | {"author":"GitHub Copilot","version":"2026.3.26","source":"ESLint + typescript-eslint + TypeScript official docs"} |
Use this skill to speed up lint execution in large monorepos without reducing lint quality.
Use when user asks to:
content when mtime churn causes false invalidation.--concurrency auto to utilize workers for larger file sets.** globs in TypeScript project resolution.pnpm eslint . --cache --cache-location .cache/eslint/.eslintcache --cache-strategy content --concurrency auto
TIMING=1 pnpm eslint .
TIMING=all pnpm eslint . --stats -f json
pnpm eslint . --max-warnings=0 --no-warn-ignored
Use these in PowerShell to avoid shell-specific environment variable syntax issues:
$env:TIMING = "1"; pnpm eslint .; Remove-Item Env:TIMING
$env:TIMING = "all"; pnpm eslint . --stats -f json; Remove-Item Env:TIMING
$env:NODE_OPTIONS = "--max-semi-space-size=256"; pnpm eslint .; Remove-Item Env:NODE_OPTIONS
Windows glob note: when passing glob arguments to ESLint CLI directly, prefer double quotes.
pnpm eslint "apps/web/src/**/*.{ts,tsx}"
parserOptions.projectService: true for monorepo-scale typed linting. When this is enabled, dedicated monorepo parserOptions.project wiring is often unnecessary.tsconfigRootDir explicitly to stabilize project resolution.parserOptions.project, avoid ./**/tsconfig.json; use explicit globs such as ./apps/*/tsconfig.json and ./packages/*/tsconfig.json.tseslint.configs.disableTypeChecked.Example:
import tseslint from "typescript-eslint";
export default tseslint.config(
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
files: ["**/*.{js,cjs,mjs}"],
extends: [tseslint.configs.disableTypeChecked],
}
);
Recommended formatting gate:
pnpm prettier --check .
Optional memory tuning command:
NODE_OPTIONS=--max-semi-space-size=256 pnpm eslint .
--max-warnings=0) after fast feedback job.TIMING=1 and capture top expensive rules.--stats -f json and inspect parse/lint/fix timings.files patterns.Optional diagnostics:
pnpm eslint --inspect-config
pnpm eslint --print-config packages/ui/src/index.ts
** project globs in large monorepos.