ESLint - 只允许绝对导入路径而不是相对路径

ine*_*now 3 eslint angular eslintrc angular11

我正在 Angular 11 项目中工作。这个项目中的很多导入都使用相对路径或绝对路径。

我为这个项目设置了 ESLint,我想阻止相对导入路径,只允许绝对路径。但我没有找到这样做的规则。
我发现:no-relative-parent-imports,但它没有给我这样的路径问题:import { HttpService } from "../http/http.service";import { RouterService } from "../../services/router/router.service";(两者都不是绝对路径,它们的绝对路径分别是import { HttpService } from "app/services/http/http.service";import { RouterService } from "app/services/router/router.service";

我读过这篇文章:https : //medium.com/@aayush123/escaping-relative-import-hell-react-native-eslint-atom-57dc2cae5bcc
但我想避免添加像 Babel 这样的东西,如果我可以避免的话.

ESLint 是否有阻止任何类型的相对路径的规则?只允许绝对路径?

小智 8

您可以将eslint-no-restricted-imports 添加到您的.eslintrc文件中,如下所示:

"no-restricted-imports": ["error", {
  "patterns": [".*"]
}],
Run Code Online (Sandbox Code Playgroud)

如果有,你需要相对导入某些文件,您可以添加覆盖eslint-config如下:

"overrides": [
  {
    "files": ["*-test.js"],
    "rules": {
      "no-restricted-imports": "off"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)


KOT*_*TIX 6

最近有人专门为您的用例创建了一个新的 ESLint 规则。

它支持为您解决问题以及允许父文件夹的选项。


Wen*_* Du 5

带有适当的消息:

{
  "no-restricted-imports": [
    "error",
    {
      "patterns": [
        {
          "group": ["./", "../"],
          "message": "Relative imports are not allowed."
        }
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)