A consolidation of my old eslint configurations ported to ESLint 9+ and Flat configuration.
- base — core ESLint rules for correctness and best practices
- style — opinionated formatting via Stylistic
- svelte — Svelte rules via
eslint-plugin-svelte(optional, subpath import) - vitest — Vitest rules via
@vitest/eslint-plugin(optional, subpath import) - import-x — curated import-x rules for
src/andtests/(optional, subpath import) - sonarjs — SonarJS recommended rules with curated overrides (optional, subpath import)
- functional — functional recommended rules with curated overrides (optional, subpath import)
- unicorn — unicorn recommended rules with curated overrides (optional, subpath import)
- playwright — Playwright recommended rules for
e2e/files (optional, subpath import)
yarn add -D eslint-nostandard
pnpm add -D eslint-nostandard
npm install -D eslint-nostandardBasic usage for eslint.config.js:
import {nostandard} from 'eslint-nostandard'
export default [
...nostandard.recommended, // base + style
// Or pick individually:
// nostandard.base,
// nostandard.style,
]Install the optional peer dependency, then import from the subpath:
yarn add -D eslint-plugin-svelte svelteimport {nostandard} from 'eslint-nostandard'
import svelte from 'eslint-nostandard/svelte'
export default [
...nostandard.recommended,
...svelte,
]Install the optional peer dependency, then import from the subpath:
yarn add -D @vitest/eslint-pluginimport {nostandard} from 'eslint-nostandard'
import vitest from 'eslint-nostandard/vitest'
export default [
...nostandard.recommended,
vitest,
]Install the optional peer dependency, then import from the subpath:
yarn add -D eslint-plugin-import-ximport {nostandard} from 'eslint-nostandard'
import importX from 'eslint-nostandard/import-x'
export default [
...nostandard.recommended,
importX,
]Install the optional peer dependency, then import from the subpath:
yarn add -D eslint-plugin-sonarjsimport {nostandard} from 'eslint-nostandard'
import sonarjs from 'eslint-nostandard/sonarjs'
export default [
...nostandard.recommended,
sonarjs,
]Install the optional peer dependencies, then import from the subpath:
yarn add -D eslint-plugin-functionalimport {nostandard} from 'eslint-nostandard'
import functional from 'eslint-nostandard/functional'
export default [
...nostandard.recommended,
...functional,
]Install the optional peer dependency, then import from the subpath:
yarn add -D eslint-plugin-playwrightimport {nostandard} from 'eslint-nostandard'
import playwright from 'eslint-nostandard/playwright'
export default [
...nostandard.recommended,
playwright,
]There are too many useless dependencies. Especially I do not consider usable anything that gives for granted that developers use React, or any other specific framework. Why would I want anything JSX or React in my NodeJS or Svelte projects?
For the same reason, I do not want eslint-plugin-n as a default dependency.
Finally, they do not respect my golden rule.
If it breaks, it's an error. If it does not break, it's a warning.
With one and only one special exception, as all good rules must have an exception.