An ESLint plugin for enforcing best practices of the Feature-Sliced Design methodology in your project.
npm install --save-dev eslint-plugin-feature-sliced-designAdd feature-sliced-design to the plugins section of your ESLint configuration:
{ "plugins": ["feature-sliced-design"], "rules": { "feature-sliced-design/layers-hierarchy": [ "error", { "alias": "@", "projectDir": "src" } ], "feature-sliced-design/public-api-slice-import": [ "error", { "alias": "@", "projectDir": "src", "ignoreLayers": ["shared", "app"], "insideProjectOnly": false } ], "feature-sliced-design/relative-path-within-slice": [ "error", { "alias": "@", "projectDir": "src" } ] } }Enforces the correct import hierarchy based on Feature-Sliced Design principles.
Enforces that slices can only be imported via their public API.
Ensures that all imports within a slice use relative paths instead of absolute aliases.
alias: The alias used for imports (e.g.,@). No alias by default.projectDir: The root directory of your frontend project.srcby default.ignoreLayers(forpublic-api-slice-import): Layers that should be ignored in rule enforcement.insideProjectOnly(forpublic-api-slice-import): Iftrue, it's allowed to import from non-public API in files outside project directory.
ISC