diff --git a/.changeset/great-colts-invite.md b/.changeset/great-colts-invite.md new file mode 100644 index 0000000000..1ca71580dc --- /dev/null +++ b/.changeset/great-colts-invite.md @@ -0,0 +1,16 @@ +--- +'@backstage/cli': minor +--- + +Added a new ESLint rule that restricts imports of Link from @material-ui + +The rule can be can be overridden in the following way: + +```diff +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { ++ restrictedImports: [ ++ { name: '@material-ui/core', importNames: [] }, ++ { name: '@material-ui/core/Link', importNames: [] }, ++ ], +}); +``` diff --git a/packages/cli/config/eslint-factory.js b/packages/cli/config/eslint-factory.js index e213f58e4e..04e23b2077 100644 --- a/packages/cli/config/eslint-factory.js +++ b/packages/cli/config/eslint-factory.js @@ -239,6 +239,17 @@ function createConfigForRole(dir, role, extraConfig = {}) { name: '@material-ui/icons/', // because this is possible too ._. message: "Please import '@material-ui/icons/' instead.", }, + { + name: '@material-ui/core', + importNames: ['Link'], + message: + 'Prefer using `Link` from `@backstage/core-components` rather than material-UI', + }, + { + name: '@material-ui/core/Link', + message: + 'Prefer using `Link` from `@backstage/core-components` rather than material-UI', + }, ...require('module').builtinModules, ...(extraConfig.restrictedImports ?? []), ],