Skip to content

coderwyd/eslint-config

Repository files navigation

@coderwyd/eslint-config

release status npm downloads

Feature

  • 🛠️ 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

Usage

Install

pnpm i -D eslint @coderwyd/eslint-config

Create config file

// eslint.config.js import { defineConfig } from '@coderwyd/eslint-config' export default defineConfig()

Add script for package.json

For example:

{ "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix" } }

VS Code support (auto 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", }, }

Lint Staged

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

Options

interface Options

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 }

Thanks

This project is based on @antfu/eslint-config

License

MIT License © 2023-PRESENT Donny Wang