0.18.0 • Published 9 months ago
@kazupon/eslint-config v0.18.0
@kazupon/eslint-config
ESLint config for @kazupon
🌟 Features
- Flat configuration via vite flavor
defineConfig
- Support built-in preset configurations
javascript
comments
typescript
imports
jsdoc
regexp
promise
unicorn
prettier
vue
react
svelte
vitest
jsonc
yml
toml
markdown
- Support primitive eslint flat configuration
- Support overrides for built-in configurations
rules
💿 Installation
npm i -D @kazupon/eslint-config
🚀 Usage
Configurations
Add create eslint.config.mjs
in your project root:
// eslint.config.mjs
import { defineConfig, javascript } from '@kazupon/eslint-config'
// You can put flat configurations (`Linter.Config | Linter.Config[]`)
export default defineConfig(
// built-in configurations
javascript({
// override rules
rules: {
'no-console': 'error'
}
}),
// You can put primitive flat configuration, and override it!
{
ignores: ['**/dist/**' /* something ignores ... */]
}
)
!IMPORTANT Support flat configuration only, not supported Legacy style (
.eslintrc
)
Lint with npm scripts package.json
For example:
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}
Lint with VS Code settings.json
You can lint and auto fix.
Install VS Code ESLint extension.
Add the following settings to your .vscode/settings.json
:
{
// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
// Enable eslint for supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"svelte",
"json",
"jsonc",
"json5",
"markdown",
"yaml",
"toml"
],
// Enable flat configuration
"eslint.useFlatConfig": true
}
🔨Built-in preset configurations
The following built-in preset configurations are supported:
Configuration | Powered by eslint plugin or package | Need to install eslint plugin or package? |
---|---|---|
javascript | @eslint/js | no (built-in) |
comments | @eslint-community/eslint-plugin-eslint-comments | no (built-in) |
typescript | typescript-eslint | yes |
imports | eslint-plugin-import , eslint-plugin-unused-imports | yes |
jsdoc | eslint-plugin-jsdoc | yes |
regexp | eslint-plugin-regexp | yes |
promise | eslint-plugin-promise | yes |
unicorn | eslint-plugin-unicorn | yes |
prettier | eslint-config-prettier | yes |
vue | eslint-plugin-vue , eslint-plugin-vue-composable , eslint-plugin-vue-scoped-css , eslint-plugin-vuejs-accessibility ) | yes |
react | eslint-plugin-react , eslint-plugin-react-hooks , eslint-plugin-react-refresh | yes |
svelte | eslint-plugin-svelte | yes |
vitest | @vitest/eslint-plugin | yes |
jsonc | eslint-plugin-jsonc | yes |
yml | eslint-plugin-yml | yes |
toml | eslint-plugin-toml | yes |
markdown | @eslint/markdown | yes |
You can use import
syntax:
import { defineConfig, javascript, typescript } from '@kazupon/eslint-config'
export default defineConfig(
javascript(/* ... */),
typescript(/* ... */)
// ...
)
⚖️ Comparing to @antfu/eslint-config
and others
- Respect the recommended config by the eslint plugin in built-in configurations
- Customization is overriding it only
💖 Credit
This eslint config is inspired by:
@antfu/eslint-config
, created by Anthony Fu@sxzz/eslint-config
, created by Kevin Deng 三咲智子- Vite, created by Evan You and Vite community
Thank you! ❤️
©️ License
0.18.0
9 months ago
0.16.0
10 months ago
0.17.0
10 months ago
0.15.0
11 months ago
0.14.1
11 months ago
0.14.0
11 months ago
0.13.3
11 months ago
0.13.2
11 months ago
0.13.1
11 months ago
0.13.0
11 months ago
0.12.0
11 months ago
0.11.0
11 months ago
0.10.1
12 months ago
0.10.0
12 months ago
0.9.1
12 months ago
0.9.0
1 year ago
0.8.0
1 year ago
0.7.0
1 year ago
0.6.0
1 year ago
0.5.0
1 year ago
0.4.1
1 year ago
0.4.0
1 year ago
0.3.0
1 year ago
0.2.0
1 year ago
0.1.0
1 year ago