ESLint Config
Framework Integrations
Enable optional framework configs for React, Vue, Next.js, Svelte, Astro, Solid, UnoCSS, and Angular.
Framework Integrations
@pleaseai/eslint-config inherits the full matrix of optional framework configs from @antfu/eslint-config. Each one is opt-in — pass the corresponding flag to pleaseai() and install any peer dependencies the integration needs.
React
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
react: true,
})
bun add -D @eslint-react/eslint-plugin eslint-plugin-react-hooks eslint-plugin-react-refresh
pnpm add -D @eslint-react/eslint-plugin eslint-plugin-react-hooks eslint-plugin-react-refresh
npm install -D @eslint-react/eslint-plugin eslint-plugin-react-hooks eslint-plugin-react-refresh
Next.js
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
nextjs: true,
})
bun add -D @next/eslint-plugin-next
pnpm add -D @next/eslint-plugin-next
npm install -D @next/eslint-plugin-next
Enable
react: true alongside nextjs: true if you want the React rules on top of Next.js-specific ones.Vue
Vue support is auto-detected from your package.json. You rarely need to enable it explicitly, but you can:
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
vue: true,
})
For Nuxt projects, see the dedicated Nuxt Integration guide — it pairs this config with @nuxt/eslint so the Nuxt module provides auto-import awareness on top.
Svelte
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
svelte: true,
})
bun add -D eslint-plugin-svelte
pnpm add -D eslint-plugin-svelte
npm install -D eslint-plugin-svelte
Astro
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
astro: true,
})
bun add -D eslint-plugin-astro
pnpm add -D eslint-plugin-astro
npm install -D eslint-plugin-astro
Solid
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
solid: true,
})
bun add -D eslint-plugin-solid
pnpm add -D eslint-plugin-solid
npm install -D eslint-plugin-solid
UnoCSS
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
unocss: true,
})
bun add -D @unocss/eslint-plugin
pnpm add -D @unocss/eslint-plugin
npm install -D @unocss/eslint-plugin
Angular
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
angular: true,
})
bun add -D @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
pnpm add -D @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
npm install -D @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
Per-Integration Rule Overrides
Every framework integration accepts an overrides object so you can tune rules without replacing the whole preset:
eslint.config.ts
import pleaseai from '@pleaseai/eslint-config'
export default pleaseai({
vue: {
overrides: {
'vue/operator-linebreak': ['error', 'before'],
},
},
typescript: {
overrides: {
'ts/consistent-type-definitions': ['error', 'interface'],
},
},
})
This is the preferred extension point — reach for the Config Composer only when overrides isn't granular enough.