0.18.0 • Published 11 months ago

@kazupon/eslint-config v0.18.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

@kazupon/eslint-config

npm version CI

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:

ConfigurationPowered by eslint plugin or packageNeed to install eslint plugin or package?
javascript@eslint/jsno (built-in)
comments@eslint-community/eslint-plugin-eslint-commentsno (built-in)
typescripttypescript-eslintyes
importseslint-plugin-import, eslint-plugin-unused-importsyes
jsdoceslint-plugin-jsdocyes
regexpeslint-plugin-regexpyes
promiseeslint-plugin-promiseyes
unicorneslint-plugin-unicornyes
prettiereslint-config-prettieryes
vueeslint-plugin-vue, eslint-plugin-vue-composable, eslint-plugin-vue-scoped-css, eslint-plugin-vuejs-accessibility)yes
reacteslint-plugin-react, eslint-plugin-react-hooks, eslint-plugin-react-refreshyes
svelteeslint-plugin-svelteyes
vitest@vitest/eslint-pluginyes
jsonceslint-plugin-jsoncyes
ymleslint-plugin-ymlyes
tomleslint-plugin-tomlyes
markdown@eslint/markdownyes

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

0.18.0

11 months ago

0.16.0

1 year ago

0.17.0

1 year ago

0.15.0

1 year ago

0.14.1

1 year ago

0.14.0

1 year ago

0.13.3

1 year ago

0.13.2

1 year ago

0.13.1

1 year ago

0.13.0

1 year ago

0.12.0

1 year ago

0.11.0

1 year ago

0.10.1

1 year ago

0.10.0

1 year ago

0.9.1

1 year 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