- π οΈ Auto fix for formatting
- β¨ Support Vue, React, Svelte.
- π― Designed to work with TypeScript, Vue out-of-box
- π Reasonable defaults, best practices, only one-line of config
pnpm i -D eslint @coderwyd/eslint-config
// eslint.config.js import { defineConfig } from '@coderwyd/eslint-config' export default defineConfig()
For example:
{ "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix" } }
Add the following settings to your .vscode/settings.json
:
{ "prettier.enable": true, "editor.formatOnSave": false, // Auto fix "editor.codeActionsOnSave": { "source.fixAll": "explicit", "source.organizeImports": "never", }, }
If you want to apply lint and auto-fix before every commit, you can add the following to your package.json
:
{ "simple-git-hooks": { "pre-commit": "pnpm lint-staged" }, "lint-staged": { "*": "eslint --fix" } }
and then
npm i -D lint-staged simple-git-hooks
interface OptionsConfig extends OptionsComponentExts { /** * The current working directory * * @default process.cwd() */ cwd?: string /** * Enable gitignore support. * * Passing an object to configure the options. * * @see https://github.com/antfu/eslint-config-flat-gitignore * @default true */ gitignore?: boolean | FlatGitignoreOptions /** * Core rules. Can't be disabled. */ javascript?: OptionsOverrides /** * Enable TypeScript support. * * Passing an object to enable TypeScript Language Server support. * * @default auto-detect based on the dependencies */ typescript?: boolean | OptionsTypescript /** * Enable test support. * * @default true */ test?: boolean | OptionsOverrides /** * Enable Vue support. * * @default auto-detect based on the dependencies */ vue?: boolean | OptionsVue /** * Enable JSONC support. * * @default true */ jsonc?: boolean | OptionsOverrides /** * Enable react rules. * * Requires installing: * - `@eslint-react/eslint-plugin` * - `eslint-plugin-react-hooks` * - `eslint-plugin-react-refresh` * * @default false */ react?: boolean | OptionsOverrides /** * Enable svelte rules. * * Requires installing: * - `eslint-plugin-svelte` * * @default false */ svelte?: boolean | OptionsOverrides /** * Enable tainwindcss rules. * * @default auto-detect based on the dependencies */ tailwindcss?: boolean | OptionsOverrides /** * Enable unocss rules. * * Requires installing: * - `@unocss/eslint-plugin` * * @default false */ unocss?: boolean | OptionsUnoCSS /** * Enable regexp rules. * * @see https://ota-meshi.github.io/eslint-plugin-regexp/ * @default true */ regexp?: boolean | (OptionsRegExp & OptionsOverrides) /** * Control to disable some rules in editors. * @default auto-detect based on the process.env */ isInEditor?: boolean /** * Automatically rename plugins in the config. * * @default true */ autoRenamePlugins?: boolean }
This project is based on @antfu/eslint-config
MIT License Β© 2023-PRESENT Donny Wang