/eslint-plugin-workspaces

An ESLint plugin for enforcing consistent imports across monorepo packages.

Primary LanguageJavaScriptMIT LicenseMIT

eslint-plugin-workspaces npm downloads Coverage Status code style: prettier

An ESLint plugin for enforcing consistent imports across monorepo packages.

It support Yarn Workspaces as well as lerna.

Installation

# npm
npm install eslint-plugin-workspaces --save-dev

# yarn
yarn add eslint-plugin-workspaces --dev

Configuration

Enable the rules in your ESLint configuration file:

{
  "plugins": ["workspaces"],
  "rules": {
    "workspaces/no-relative-imports": "error",
    "workspaces/require-dependency": "warn"
  }
}

Or add the "recommended" preset:

{
  "extends": ["plugin:workspaces/recommended"]
}

Rules

✔ included in the "recommended" preset

🔧 fixable using the --fix command line option

Name Description
✔ 🔧 no-absolute-imports disallow absolute imports for files that are within the current package
no-cross-imports disallow imports of files that are inside another package
✔ 🔧 no-relative-imports disallow relative imports of files that are outside of the current package
✔ require-dependency disallow importing from packages that are not listed as a dependency

Presets

  • recommended enables rules recommended for all users
  • all enables all rules

License

MIT