如何为 *.spec.ts 文件使用不同的 tslint.json

szy*_*onb 5 intellij-idea typescript tslint angular

我为我的 Angular 应用程序定义了一组 tslint 规则。但是,对于规范文件,我想使用更宽松的规则集(例如,newline-per-chained-call为好的期望语句禁用规则),但我无法弄清楚如何在 IntelliJ IDEA 中做到这一点。

Angular CLI 工作正常,因为在 CLI 配置中有一个部分将正确的 tsconfig.json 文件(具有正确的排除/包含)与相应的 tslint 文件映射。但是,IntelliJ 并不尊重这一点。

"lint": [
  {
    "project": "src/tsconfig.app.json"
  },
  {
    "project": "src/tsconfig.spec.json"
    "tslintConfig": "tslint.spec.json"
  },
  {
    "project": "e2e/tsconfig.e2e.json",
    "tslintConfig": "tslint.spec.json"
  }
]
Run Code Online (Sandbox Code Playgroud)

IntelliJ 从 2018.1 版本开始支持多个 tsconfig.json 文件(参见:https ://youtrack.jetbrains.com/issue/WEB-28091 ),尽管看起来仍然不支持多个 tslint 配置。

我还找到了一个解决方案来创建一个本地范围并对其禁用一些检查,但我希望它由不使用 IntelliJ 的人的 tslint 规则定义。

另一种方法是将测试放在一个单独的目录中,并在其中放置一个 tslint.json,但这不是 Angular 推荐的,也不是人们在 Angular 中习惯的。

len*_*ena 0

IDEA 中的 TsLint 服务的工作方式与 TSLint cli 相同 - 它查找tslint.json在被 linted 文件的目录中命名的配置文件,如果找不到,则搜索祖先目录。因此,唯一的解决方案是将单独的配置文件放在您的spec目录中。如果您需要该服务遵循此处的 Angular 规则,请随时在 youtrack 中创建功能请求,https://youtrack.jetbrains.com/issues/WEB。如果获得足够的票数,未来版本将考虑使用它