Skip to main content

Manual setup

Follow these steps:

  1. Install the package from npm.

    npm install -D eslint eslint-define-config eslint-config-sheriff
  2. Create a eslint.config.mjs file at the root of your project and copy/paste the contents of the following snippet of code:

    eslint.config.mjs
    import sheriff from "eslint-config-sheriff";
    import { defineFlatConfig } from "eslint-define-config";

    const sheriffOptions = {
    react: false,
    next: false,
    astro: false,
    lodash: false,
    playwright: false,
    jest: false,
    vitest: false,
    };

    export default defineFlatConfig([...sheriff(sheriffOptions)]);

    or, if you already have a eslint.config.mjs in your project, just append Sheriff to the configs array, like this:

    eslint.config.mjs
    import sheriff from "eslint-config-sheriff"; // add this
    import { defineFlatConfig } from "eslint-define-config"; // add this
    // my other imports...

    // add this
    const sheriffOptions = {
    react: false,
    next: false,
    astro: false,
    lodash: false,
    playwright: false,
    jest: false,
    vitest: false,
    };

    export default [
    ...sheriff(sheriffOptions), // add this
    // my other configurations...
    ];
  3. Adopt eslint.config.ts (optional).

    If you want to have a .ts configuration file instead of the default .js file, follow these steps:

      npm install -D eslint-ts-patch eslint@npm:eslint-ts-patch @sherifforg/types
    • change the extension of eslint.config.mjs from .mjs to .ts

    • define the types of the sheriffOptions object:

      eslint.config.ts
      import sheriff from "eslint-config-sheriff";
      import { defineFlatConfig } from "eslint-define-config";
      import type { SheriffSettings } from "@sherifforg/types";

      const sheriffOptions: SheriffSettings = {
      react: false,
      next: false,
      astro: false,
      lodash: false,
      playwright: false,
      jest: false,
      vitest: false,
      };

      export default defineFlatConfig([...sheriff(sheriffOptions)]);
  4. Configure Sheriff (optional)

  5. Setup Prettier (optional)

  6. Setup VSCode support (optional)

warning

Sheriff is based on the new format of ESLint configs. You cannot extend Sheriff from an old config format, it wouldn't work.