I'd like to block imports directly from the root of a dependency (@material-ui/icons) in my application, as well as enforce tree-shaking.
Valid -
import AccessAlarmIcon from "@material-ui/icons/AccessAlarm";
Invalid -
import AccessAlarmIcon from "@material-ui/icons/";
Material-ui has a good guide on setting up tree-shaking, but it does not enforce the no-root rule above.
rules: {
"no-restricted-imports": [
"error",
{
"patterns": ["@material-ui/*/*/*", "!@material-ui/core/test-utils/*"],
"message": "Tree-shaking is enforced for @material-ui, import dependencies "
}
]
}
Will just adding "@material-ui/*" as a pattern solve my issue?