[!CAUTION] Prettier is already included for styling!
- 786 errored rules.
- 237 rules from eslint-plugin-sonarjs
- 143 rules from @eslint/js
- 123 rules from sindresorhus/eslint-plugin-unicorn
- 107 rules from @typescript/eslint
- 49 rules from @html-eslint/eslint-plugin
- 34 rules from jsx-a11y
- 32 rules from eslint-plugin-lodash
- 20 rules from eslint-plugin-perfectionist
- 17 rules from @eslint/markdown
- 8 rules from @eslint/css
- 7 rules from @tanstack/eslint-plugin-query
- 6 rules from @eslint/json
- 1 rule from eslint-plugin-compat
- 1 rule from @tanstack/eslint-plugin-router
- 1 rule from @cspell/eslint-plugin
- 76 rules for Angular
-
import angularConfig from "@ethang/eslint-config/config.angular.js";
- 45 rules from @angular-eslint/eslint-plugin
- 31 rules from @angular-eslint/eslint-plugin-template
-
- 52 rules for Astro
-
import astroConfig from "@ethang/eslint-config/config.astro.js";
- 52 rules from eslint-plugin-astro
-
- 100 rules for React
-
import reactConfig from "@ethang/eslint-config/config.react.js";
- 98 rules from @eslint-react/eslint-plugin
- 2 rules from eslint-plugin-react-hooks
-
- 18 rules for Solid
-
import solidConfig from "@ethang/eslint-config/config.solid.js";
- 18 rules from eslint-plugin-solid
-
- 16 rules from Storybook
-
import storybookConfig from "@ethang/eslint-config/config.storybook.js";
- 16 rules from eslint-plugin-storybook
-
pnpm i -D eslint typescript-eslint @ethang/eslint-config
Requires TypesScript and tsconfig.json at root directory.
In eslint.config.ts
import config from "@ethang/eslint-config/eslint.config.js";
import tseslint from "typescript-eslint";
import astroConfig from "@ethang/eslint-config/config.astro.js"; // OPTIONAL
import reactConfig from "@ethang/eslint-config/config.react.js"; // OPTIONAL
export default tseslint.config(
{
ignores: [], // Ignored files apply to all following configs
},
...config,
...astroConfig,
...reactConfig,
{
languageOptions: {
parserOptions: {
project: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
// Override rules from above configs
},
}
);
Scripts
"scripts": {
"lint": "eslint . --fix"
}
Browserslist
This config will also lint for browserslist features. More info.
It's recommended to use browserslist-config-baseline
pnpm i -D browserslist-config-baseline
"browserslist": [
"extends browserslist-config-baseline",
"current node"
],
Or a simpler config without an additional dependency.
"browserslist": [
"defaults and fully supports es6-module",
"current node"
],
Engines
"engines": {
"node": ">=22"
},