FAQ
Frequently Asked Questions about Sheriff
Why you didn’t include ESLint plugins/rules for "X" library?
eslint-plugin-cypress
Don't use Cypress. Use Playwright instead.
eslint-plugin-testing-library
eslint-plugin-testing-library.
I believe Sheriff should not encourage wrong testing practices. In my opinion testing library is one of the least efficient ways to test UIs, by principles. In most codebases it does more harm than good. You can use Storybook to test components in isolation and Playwright for any kind of integration and end-to-end tests.
eslint-plugin-unused-imports
Anything this plugin does is done better by knip.
import/no-unused-modules
This rule is very slow and and has some issues, it is also hard to get working properly in most codebases. Instead, i recommend knip.
Is Sheriff compatible with "X"?
Generally speaking, everything that is compatible with ESLint, should also be compatible with Sheriff. That being said, in some cases there can be some nuances:
Vite
Vite.
Compatible out of the box.
Next.js
Sheriff has explicit support for Next.js. You can enable it in the Sheriff config options. You shouldn't follow any of the steps provided in the Next.js website. Only follow the Sheriff instructions.
It's also recommended to disable the nextjs default linting from the build process, to avoid potential conflicts with Sheriff.
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
eslint: {
ignoreDuringBuilds: true,
},
};
export default nextConfig;
CRA
CRA.
Compatible. Just add this line to your .env
file:
DISABLE_ESLINT_PLUGIN=true
Does Sheriff support vanilla Javascript codebases?
Sheriff is a Typescript-first ESLint configuration. It's focused on Typescript codebases. You can almost consider Sheriff a superset of @typescript-eslint. If your codebase is not written in Typescript, you should worry about that first, before worrying about linting.
For this reason, vanilla Javascript is not supported as of right now, but support may come at a later time.
Last updated on