Hint
ESLint rules enforced via project tags — prevents forbidden imports between domains (e.g., feature libs importing from other features)
Nx lets you tag each project (e.g., scope:checkout, type:feature, type:util) and then write ESLint rules that restrict which tags can import from which.
// .eslintrc.json
"@nx/enforce-module-boundaries": ["error", {
"depConstraints": [
{ "sourceTag": "type:feature", "onlyDependOnLibsWithTags": ["type:ui", "type:util", "type:data-access"] },
{ "sourceTag": "scope:checkout", "notDependOnLibsWithTags": ["scope:profile"] }
]
}]
Why this matters: