diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs index a4d6a82658..1ec3bed82c 100644 --- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs +++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs @@ -64,5 +64,30 @@ module.exports = { }; }, - } + }, + + /** @type {import('eslint').Rule.RuleModule} */ + 'prefer-import-aliases': { + meta: { + type: 'suggestion', + docs: { + description: 'Ensures that the application does not rely on file system paths for imports. Instead, use import aliases or relative imports. This also solves a problem where GitHub fails on the test runner step.', + category: 'Best Practices', + recommended: true + }, + schema: [], + }, + create: function (context) { + return { + ImportDeclaration: function (node) { + if (node.source.value.startsWith('src/')) { + context.report({ + node, + message: 'Prefer using import aliases or relative imports instead of absolute imports. Example: `import { MyComponent } from "src/components/MyComponent";` should be `import { MyComponent } from "@components/MyComponent";`' + }); + } + }, + }; + } + }, };