关于javascript:如何忽略tslint的特定目录或文件?

How to ignore a particular directory or file for tslint?

使用的IDE是WebStorm 11.0.3,已配置tslint并可以使用它,但是由于尝试解析大型* .d.ts库文件而挂起。

有没有办法忽略特定的文件或目录?


tslint v5.8.0更新

如Saugat Acharya所述,您现在可以更新tslint.json CLI选项:

1
2
3
4
5
6
7
8
9
{
 "extends":"tslint:latest",
 "linterOptions": {
     "exclude": [
         "bin",
         "lib/*generated.js"
      ]
  }
}

此拉取请求中的更多信息。

tslint 3.6引入了此功能

1
tslint "src/**/*.ts" -e "**/__test__/**"

您现在可以添加--exclude(或-e),请参见PR。

CLI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
usage: tslint [options] file ...

Options:

-c, --config          configuration file
--force               return status code 0 even if there are lint errors
-h, --help            display detailed help
-i, --init            generate a tslint.json config file in the current working directory
-o, --out             output file
-r, --rules-dir       rules directory
-s, --formatters-dir  formatters directory
-e, --exclude         exclude globs from path expansion
-t, --format          output format (prose, json, verbose, pmd, msbuild, checkstyle)  [default:"prose"]
--test                test that tslint produces the correct output for the specified directory
-v, --version         current version

您正在使用

1
-e, --exclude         exclude globs from path expansion


我正在使用Visual Studio Code

/* tslint:disable */

为我工作。查看此页面,大约在3/4处有一些禁用命令https://c9.io/lijunle/tslint

要注意的事情。上面的禁用会禁用该页面上的所有tslint规则。如果您要在页面的一半下方禁用特定规则,则有一个规则列表。因此,您可以关闭诸如

1
/* tslint:disable comment-format */


除了Michael的答案外,请考虑第二种方法:向tslint.json添加linterOptions.exclude

例如,您的tslint.json可能包含以下几行:

1
2
3
4
5
6
7
{
 "linterOptions": {
   "exclude": [
     "someDirectory/*.d.ts"
    ]
  }
}


tslint v5.8.0开始,可以在tslint.json文件中的linterOptions键下设置exclude属性:

1
2
3
4
5
6
7
8
9
10
{
 "extends":"tslint:latest",
 "linterOptions": {
     "exclude": [
         "bin",
         "**/__test__",
         "lib/*generated.js"
      ]
  }
}

在此更多信息。


还有其他人遇到了这个问题。不幸的是,排除文件只有一个公开的问题:https://github.com/palantir/tslint/issues/73

因此,恐怕答案是否定的。


linterOptions当前仅由CLI处理。
如果不使用CLI,则根据所使用的代码库,您需要在其他位置设置忽略。 webpack,tsconfig等


我必须使用** / *语法来排除文件夹中的文件:

1
2
3
4
5
6
   "linterOptions": {
       "exclude": [
         "src/auto-generated/**/*",
         "src/app/auto-generated/**/*"
        ]
    },

可以在tslint 5.11.0版上通过定义exclude参数来修改package.json中的lint脚本来确认其正常工作:

1
"lint":"ng lint --exclude src/models/** --exclude package.json"

干杯!!