๐ Another opinionated ESLint config
Note
For a better experience, make sure to use @jimmy.codes/prettier-config as well.
First, install the package:
pnpm add -D @jimmy.codes/eslint-config
Then, in your eslint.config.js
, simply add:
import eslintConfig from "@jimmy.codes/eslint-config";
export default eslintConfig();
This automatically applies rules based on your installed dependencies.
By default, this config automatically enables rules based on your installed dependencies (e.g., react
, vitest
). Set autoDetect: false
to disable this behavior.
import eslintConfig from "@jimmy.codes/eslint-config";
export default eslintConfig({ autoDetect: false });
You can also manually enable or disable specific rule sets:
import eslintConfig from "@jimmy.codes/eslint-config";
export default eslintConfig({
astro: false,
jest: false,
nextjs: false,
playwright: false,
react: false,
storybook: false,
tanstackQuery: false,
testingLibrary: false,
typescript: false,
vitest: false,
});
You can extend or override the configuration using the overrides
option:
import eslintConfig from "@jimmy.codes/eslint-config";
export default eslintConfig({
overrides: [
{
files: ["**/*.js"],
rules: {
"prefer-spread": "error",
},
},
{
files: ["**/*.ts"],
rules: {
"prefer-const": "error",
},
},
],
});
Alternatively, you can pass additional configurations as separate arguments:
import eslintConfig from "@jimmy.codes/eslint-config";
export default eslintConfig(
{},
{
files: ["**/*.js"],
rules: {
"prefer-spread": "error",
},
},
{
files: ["**/*.ts"],
rules: {
"prefer-const": "error",
},
},
);
This approach is useful if you prefer to separate rule overrides into multiple objects instead of nesting them inside
overrides
.
You can also extend what is ignored:
import eslintConfig from "@jimmy.codes/eslint-config";
export default eslintConfig({
ignores: ["**/*.mjs"],
});