0.18.0 • Published 9 months ago

@kazupon/eslint-config v0.18.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 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

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