Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coderwyd/eslint-config
Donny's ESLint config presets.
https://github.com/coderwyd/eslint-config
eslint eslint-config eslint-plugin eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-svelte eslint-plugin-vitest eslint-plugin-vue
Last synced: about 1 month ago
JSON representation
Donny's ESLint config presets.
- Host: GitHub
- URL: https://github.com/coderwyd/eslint-config
- Owner: coderwyd
- License: mit
- Created: 2023-08-02T07:52:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-08T00:28:00.000Z (about 1 month ago)
- Last Synced: 2024-10-08T14:28:02.978Z (about 1 month ago)
- Topics: eslint, eslint-config, eslint-plugin, eslint-plugin-import, eslint-plugin-react, eslint-plugin-react-hooks, eslint-plugin-svelte, eslint-plugin-vitest, eslint-plugin-vue
- Language: TypeScript
- Homepage: https://donny-eslint-config.netlify.app/
- Size: 1.64 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @coderwyd/eslint-config
[![release status](https://github.com/coderwyd/eslint-config/actions/workflows/release.yml/badge.svg)](https://github.com/coderwyd/eslint-config/actions/workflows/release.yml)
[![npm](https://img.shields.io/npm/v/@coderwyd/eslint-config.svg)](https://npmjs.org/package/@coderwyd/eslint-config)
[![downloads](https://img.shields.io/npm/dm/@coderwyd/eslint-config.svg)](https://npmjs.org/package/@coderwyd/eslint-config)## 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
```bash
pnpm i -D eslint @coderwyd/eslint-config
```### Create config file
With [`"type": "module"`](https://nodejs.org/api/packages.html#type) in `package.json` (recommended):
```js
// eslint.config.js
import { defineConfig } from '@coderwyd/eslint-config'export default defineConfig()
```With CJS:
```js
// eslint.config.js
const { defineConfig } = require('@coderwyd/eslint-config')module.exports = defineConfig()
```### Add script for package.json
For example:
```json
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}
```## VS Code support (auto fix)
Add the following settings to your `.vscode/settings.json`:
```jsonc
{
"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`:
```json
{
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged"
},
"lint-staged": {
"*": "eslint --fix"
}
}
```and then
```bash
npm i -D lint-staged simple-git-hooks
```## Options
### interface Options
```ts
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](https://github.com/antfu/eslint-config)
## License
[MIT](./LICENSE) License © 2023-PRESENT [Donny Wang](https://github.com/coderwyd)