TSLint

时间:2018-07-08 22:41:00

标签: typescript eslint lint tslint

TSLint.json配置文件(https://github.com/palantir/tslint)支持extends和类似的rulesDirectory数组

{
  "extends": [
    "tslint-microsoft-contrib",
    "tslint-config-security"
  ],
  "rulesDirectory": [
    "node_modules/tslint-eslint-rules/dist/rules",
    "node_modules/tslint-microsoft-contrib",
    "node_modules/tslint-config-security"
  ]
}

对于不熟悉该工具的新用户,文档似乎有些开放的理由。

如果有人能阐明关于extendsrulesDirectory的行为(与VS Code编辑器中使用的代码以及一般tslint有关的行为),我将不胜感激。

  1. extends是否仅 提供默认配置(如果由软件包提供)?

  2. ,因此这与rulesDirectory不同吗?

    • rulesDirectory是否仅为您提供专门选择加入的规则(如果在根tslint.json中指定规则,则必须提供)?

    • 我仍然应该在tslint extends中同时指定rulesDirectory软件包吗?

      < / li>
  3. 假设extends提供了另一个tslint配置文件的默认设置,我是否可以指定rulesDirectory并添加一条规则来覆盖特定标志?

之所以担心,是因为只有部分规则会出现在IntelliSense自动完成功能中,而仅有的一些行为我会更加清楚。

3 个答案:

答案 0 :(得分:4)

  

TSLint中的extendsrulesDirectory有什么区别

它们非常不同。

  • extends允许您应用现有的tslint配置,然后对其进行扩展
  • rulesDirectory仅允许您添加自定义规则的目录。

答案 1 :(得分:2)

?答案来自tslint configuration docs as of 6 April 2018

  
      
  • extends?: string | string[]:内置配置预设的名称(请参阅下面的内置预设),或指向的路径或路径数组   此配置扩展的其他配置文件。   使用节点模块解析语义来处理此值。对于   例如,值"tslint-config"会告诉TSLint尝试   将名为“ tslint-config”的模块的主文件加载为   配置文件。节点模块内的特定文件也可以是   指定,例如。 "tslint-config/path/to/submodule"。相对路径   还支持JSON文件或JS模块,例如"./tslint-config"
  •   
  • rulesDirectory?: string | string[]:[自定义规则] [2]的目录路径或目录的路径数组。这些值是   如果index.js是使用节点模块解析语义来处理的   放在您的rules目录中。我们回退以使用相对或   绝对路径(如果无法解析模块)。如果你想避免   您可以直接使用相对或绝对路径的模块分辨率   (例如,使用./)。
  •   

rules块中指定的任何规则都将覆盖正在扩展的任何基本配置中配置的规则。

答案 2 :(得分:0)

看看docs

似乎主要区别是:

  • "extends"使用一组内置规则

  • "rulesDirectory"使用custom(您自己的而非内置的)规则