Sherif: Zero-Config Monorepo Linter

1.11.1 · active · verified Sun Apr 19

Sherif is an opinionated, zero-config linter designed specifically for TypeScript and JavaScript monorepos. It aims to standardize the developer experience (DX) and prevent regressions by enforcing a predefined set of rules across multiple packages within a single repository. Written in Rust for performance, Sherif operates efficiently without requiring `node_modules` to be installed, supporting all major package managers including PNPM, Bun, NPM, and Yarn. The current stable version is 1.11.1, with frequent minor releases indicating active development and maintenance. Key differentiators include its zero-configuration approach, cross-package manager compatibility, high execution speed, and robust autofix capabilities which can be run interactively or non- interactively via a `--select` flag for consistent dependency versioning.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates `sherif` configuration in `package.json` for linting and autofixing monorepo issues, along with example `scripts` for execution.

{
  "name": "my-monorepo-root",
  "private": true,
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "lint:monorepo": "sherif",
    "lint:monorepo:fix": "sherif --fix --select highest"
  },
  "sherif": {
    "failOnWarnings": true,
    "ignoreRule": ["root-package-manager-field"],
    "rules": {
      "multiple-dependency-versions": true,
      "unsync-similar-dependencies": true
    }
  }
}

// To run the linting:
// npx sherif@latest
// or using the script defined above:
// npm run lint:monorepo

// To run the autofix:
// npm run lint:monorepo:fix

view raw JSON →