2.7 KiB
2.7 KiB
Linting in Plane - How It Works
We use OxLint for linting across the entire monorepo. OxLint is a single Rust binary that's 50-100x faster than ESLint, with zero Node.js dependencies at runtime.
Key Points
- Single Root Config - One
.oxlintrc.jsonat the repo root handles all packages and apps - No Build Required - OxLint doesn't need TypeScript build artifacts, so lint runs independently of build
- Plugin Coverage - react, typescript, jsx-a11y, import, promise, unicorn, oxc
How to Run
From the root of the repo:
# Check for lint errors
pnpm check:lint
# Auto-fix lint errors
pnpm fix:lint
To lint a specific package:
pnpm turbo run check:lint --filter=@plane/ui
VS Code Integration
Install the OxLint extension for inline errors/warnings as you type.
What Gets Linted
The config applies to all TypeScript and JavaScript files across:
apps/web,apps/admin,apps/space,apps/live- All packages in
packages/
Ignored paths:
node_modules/,dist/,build/,.next/,.turbo/- Config files (
*.config.{js,mjs,cjs,ts}) - Public folders, coverage, storybook-static
Rules Overview
OxLint uses category-based configuration:
| Category | Level | What It Catches |
|---|---|---|
| correctness | error | Real bugs that will cause runtime errors |
| suspicious | warn | Code patterns that are likely mistakes |
| perf | warn | Performance anti-patterns |
Additional rule overrides:
react/prop-typesoff (TypeScript handles prop validation)no-unused-varswarns with_prefix pattern ignored- Several noisy unicorn rules disabled
Backward Compatibility
OxLint supports eslint-disable comments, so existing inline suppressions continue to work.
Suppressing Warnings
// Single line
// eslint-disable-next-line no-unused-vars
const data = response;
// Block
/* eslint-disable no-unused-vars */
// ... code
/* eslint-enable no-unused-vars */
Please use sparingly - most warnings indicate real issues that should be fixed.
Pre-commit Hook
Lint-staged runs automatically on commit via Husky:
- oxfmt formats your staged files
- OxLint fixes what it can (with
--deny-warnings)
If the commit fails due to lint errors, fix them before committing.
Reference Files
- .oxlintrc.json - OxLint configuration
- package.json - Available scripts