FAQ
vinicuncaESLint is not the default export
Use a named import. There is no default export and no factory module:
import { vinicuncaESLint } from '@vinicunca/eslint-config';
There is no CLI / setup wizard
Write eslint.config.js by hand. pnpm dlx @antfu/eslint-config installs antfu's package, not this one.
Cannot find package 'eslint-plugin-sonarjs'
You are on v5.7.1 or older. Those versions import eslint-plugin-sonarjs at load time but list it as an optional peer. Upgrade to v6, which ships eslint-plugin-slop and eslint-plugin-sonarjs as dependencies. See Upgrading from v5 to v6.
How do I turn off the anti-slop rules?
They are on by default since v6:
export default vinicuncaESLint({
antislop: false,
});
Why didn't stylistic.braceStyle change else?
STYLISTIC_CONFIG_DEFAULTS.braceStyle is 'stroustrup', but vinicunca/stylistic/rules then sets 'style/brace-style': ['error'] with no options, which is ESLint Stylistic's default 1tbs. Vue templates still use vue/brace-style with your braceStyle value.
To get stroustrup in JS/TS:
export default vinicuncaESLint().override('vinicunca/stylistic/rules', {
rules: {
'style/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],
},
});
lessOpinionated does nothing
The option is forwarded into stylistic() but never read. curly, antfu/top-level-function and style/arrow-parens stay on. Turn them off with stylistic.overrides or .overrideRules().
pnpx eslint / pnpm dlx eslint ignores my plugins
Those commands download a different ESLint. Use the project binary:
pnpm eslint
pnpm exec eslint --fix
Can I keep Prettier?
Not on JavaScript or TypeScript. Disable the Prettier extension (prettier.enable: false) and let ESLint fix those files. Use formatters for CSS/HTML/XML/Markdown/GraphQL/Astro so Prettier runs inside ESLint as format/prettier.
How do I turn stylistic rules off?
export default vinicuncaESLint({
stylistic: false,
});
You then need another formatter for JS/TS. Integrations that took indent / quotes from stylistic (JSON, YAML, Vue templates, Svelte, formatters) fall back to the built-in defaults.
Vue didn't turn on
The factory looks for vue, nuxt, vitepress or @slidev/cli in the project's packages. Set vue: true (or false) to override detection.
Type-aware rules are slow
typescript.tsconfigPath enables a large @typescript-eslint typed set. Narrow filesTypeAware, add ignoresTypeAware, or drop tsconfigPath if you don't need those rules.
Angular?
Not supported. There is no angular option.
files in the first argument throws
The first argument is global options. Put files on the second (or later) config object.
Command comments
eslint-plugin-command is always registered (vinicunca/command/rules). Remove it with .remove('vinicunca/command/rules') if you don't want comment-triggered transforms.