kazupon / eslint-config

ESLint config for @kazupon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@kazupon/eslint-config

npm version CI

ESLint config for @kazupon

🌟 Features

  • Flat configuration via vite flavor defineConfig
  • Support built-in configurations
    • javascript
    • comments
    • typescript
    • jsdoc
    • regexp
    • promise
    • unicorn
    • prettier
    • jsonc
    • vue,
    • yml
    • toml
  • 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.FlatConfig | Linter.FlatConfig[]`)
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", "typescript", "json", "jsonc", "json5", "vue", "yaml", "toml"],
  // Enable flat configuration
  "eslint.useFlatConfig": true
}

🔨Built-in configurations

The following built-in 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
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
jsonc eslint-plugin-jsonc yes
vue eslint-plugin-vue yes
yml eslint-plugin-yml yes
toml eslint-plugin-toml 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:

Thank you! ❤️

©️ License

MIT

About

ESLint config for @kazupon

License:MIT License


Languages

Language:TypeScript 95.9%Language:JavaScript 2.5%Language:Shell 1.6%