Skip to main content

disallow-stylelint-relative-extends-paths

Disallow relative-path entries in top-level Stylelint extends declarations.

Targeted pattern scopeโ€‹

This rule targets Stylelint config modules such as stylelint.config.ts, stylelint.config.mjs, and .stylelintrc.js.

It focuses on top-level exported config objects, including configs wrapped in defineConfig(...).

What this rule reportsโ€‹

Reports extends entries that start with ./, ../, .\\, or ..\\.

Why this rule existsโ€‹

Relative path references in shared configs are fragile across package boundaries and monorepos. Package-based identifiers are more portable and predictable.

โŒ Incorrectโ€‹

export default {
extends: ["../shared/stylelint.cjs"],
rules: {},
};

โœ… Correctโ€‹

export default {
extends: ["stylelint-config-standard"],
rules: {},
};

Behavior and migration notesโ€‹

This rule reports relative-path entries and does not auto-fix because replacement identifiers are repository-specific.

ESLint flat config exampleโ€‹

import stylelint2 from "eslint-plugin-stylelint-2";

export default [stylelint2.configs.configuration];

When not to use itโ€‹

Do not use this rule if your config architecture intentionally relies on relative extends references.

Package documentationโ€‹

Stylelint package documentation:

Rule catalog ID: R027

Further readingโ€‹