eslint-plugin-shuunen
v1.3.0
Published
My personal ESLint configs & rules
Maintainers
Readme
eslint-plugin-shuunen
Demo
There not much to show, but here is a super useful eslint rule from this package in action :

Installation
Choose your favorite package manager :
npm install -D eslint-plugin-shuunen
pnpm install -D eslint-plugin-shuunen
yarn install -D eslint-plugin-shuunen
bun install -D eslint-plugin-shuunenFeatures
- 🚀 Modern ESLint Config: Built for ESLint's new flat config system
- 🔧 Comprehensive Rules: Combines best practices from multiple ESLint plugins
- 📦 Modular Design: Pick and choose the configs you need
- ⚡ Performance Optimized: Minimal overhead, maximum value
- 🛠 TypeScript Support: Full TypeScript support with strict type checking
- 🎨 Styling Rules: Consistent code style across your project
ES Module
In your eslint.config.js :
import { base } from 'eslint-plugin-shuunen/configs/base'
// import { browser } from 'eslint-plugin-shuunen/configs/browser'
// same pattern for the other configs
export default [ // 🥗 compose your salad
...base, // 🥚 eslint/all + unicorn/all + perfectionist/natural + jsdoc
// ...browser, // 🥑 globals for browser
// ...tailwind, // 🥭 tailwindcss class order
// ...node, // 🥕 globals for node
// ...typescript, // 🍅 typescript/all
// ...vue, // 🥔 vue essential + stronglyRecommended + recommended
]CommonJS (legacy)
Last working version with CommonJS is 0.4.0.
In your eslint.config.cjs :
const shuunen = require('eslint-plugin-shuunen')
/** @type {import('eslint').Linter.Config} */
module.exports = [
...shuunen.configs.base,
...shuunen.configs.browser,
...shuunen.configs.node,
...shuunen.configs.typescript,
...shuunen.configs.vue,
]You can adjust the rules to your taste :
module.exports = [
...shuunen.configs.base,
{
rules: {
'shuunen/some-rule': 'off',
'unicorn/some-other-rule': 'warn',
},
},
]Included Plugins
@eslint/js: Core ESLint ruleseslint-plugin-jsdoc: JSDoc ruleseslint-plugin-perfectionist: Code organization, sortingeslint-plugin-tailwindcss: Tailwind CSS class ordereslint-plugin-unicorn: Additional ESLint ruleseslint-plugin-vue: Vue.js supporttypescript-eslint: TypeScript support
TODO
- [ ] use a plugin for react
- [ ] merge typescript into base because it works on js ^^
- [ ] search interesting plugins from eslint-plugin-antfu
- [ ] search interesting plugins from eslint-plugin-hardcore
- [ ] when available, add bun coverage line exclusions and enable 100% thresholds to ensure coverage is not decreasing
- [ ] test to build a index.min.js file and see how it impact :
- [ ] the install size
- [ ] the performance
- [ ] the source code readability in case of error
Thanks
- Anthony Fu : for his config, for the inspiration
- Boxy Svg : simple & effective svg editor
- Bun : super fast runtime for JavaScript and TypeScript
- Eslint : super tool to find & fix problems
- Github : for all their great work year after year, pushing OSS forward
- Knip : super tool to find & fix problems
- Npm-parallel : to keep my npm scripts clean & readable
- Repo-checker : eslint cover /src code and this tool the rest ^^
- Shields.io : for the nice badges on top of this readme
- Sindre Sorhus : for his awesome eslint-plugin-unicorn, for the inspiration
- Svg Omg : the great king of svg file size reduction
- Watchlist : recursively watch a list of directories & run a command on any file system
