eslint-focus
v1.4.0
Published
Allows running ESLint on a directory with a single rule or set of rules matching a pattern. The matched rules MUST be enabled in your ESLint config for the files you want it to run on (e.g. enable it in your root `.eslintrc.js`).
Downloads
4
Readme
eslint-focus
Allows running ESLint on a directory with a single rule or set of rules matching a pattern.
The matched rules MUST be enabled in your ESLint config for the files you want it to run on (e.g. enable it in your root .eslintrc.js
).
Usage
npx eslint-focus <ruleOrRulePattern> <relativeOrAbsolutePaths..>
Run ESLint with a single rule or rules matching a pattern on a given directory.
Positionals:
ruleOrRulePattern A single rule or pattern [string]
relativeOrAbsolutePaths An absolute path or a path relative to the current working directory. [string]
Options:
--version Show version number [boolean]
--help Show help [boolean]
--allowInlineConfig Respects eslint-disable directives. [boolean] [default: false]
--fix Same as `eslint --fix`:
https://eslint.org/docs/latest/use/command-line-interface#--fix
[boolean] [default: false]
--fix-type Same as `eslint --fix-type`:
https://eslint.org/docs/latest/use/command-line-interface#--fix-type
[array] [choices: "problem", "suggestion", "layout"]
Examples:
npx eslint-focus react-hooks/rules-of-hooks . Run `react-hooks/rules-of-hooks` on every file
inside the current directory.
npx $1 /jest\// . Run all Jest rules on every file inside the
current directory.
npx eslint-focus react-hooks/exhaustive-deps . --fix Fixes all `react-hooks/exhaustive-deps` issues
--fix-type suggestion inside the current directory.
npx eslint-focus import/order packages/features/pf-* (Relies on Bash globbing) Run `import/order` on
every folder matching 'packages/features/pf-*'.
npx eslint-focus import/order packages/core (Relies on Bash globbing) Run `import/order` on
packages/traits every file inside 'packages/core' OR
'packages/traits'.
$ npx eslint-focus react/no-unstable-nested-components .
/Users/sebastian.silbermann/repo/BottomSheet.native.tsx:106:29
/Users/sebastian.silbermann/repo/BottomSheet.native.tsx:145:15
/Users/sebastian.silbermann/repo/CardExpirationWarning.tsx:51:23
┌──────────────────────┬────────┐
│ (index) │ Values │
├──────────────────────┼────────┤
│ Considered files │ 71671 │
│ Skipped files │ 181 │
│ Files failed to lint │ 1 │
│ Files with issues │ 216 │
│ Issues │ 308 │
└──────────────────────┴────────┘
Done in 386.08s.
Missing
Configure extensions. By default it runs on everything that's TypeScript or JavaScript i.e. /\.(cjs|cts|js|jsx|mjs|mts|ts|tsx)$/
.
Why?
- eslint-nibbler is slow
- ESLint formatters still executes every rule
- ESLint
--no-eslintrc
means I have to know the parser options up front - ESLint has no built-in support to stream results