Como ignorar um diretório ou arquivo específico para tslint?

135

O IDE usado é o WebStorm 11.0.3, o tslint está configurado e funciona, mas trava porque tenta analisar grandes arquivos de biblioteca * .d.ts.

Existe uma maneira de ignorar um arquivo ou diretório específico?

user3330840
fonte

Respostas:

200

Atualização para tslint v5.8.0

Conforme mencionado por Saugat Acharya , agora você pode atualizar as opções da CLI do tslint.json :

{
  "extends": "tslint:latest",
  "linterOptions": {
      "exclude": [
          "bin",
          "lib/*generated.js"
      ]
  }
}

Mais informações nesta solicitação de recebimento .


Este recurso foi introduzido com o tslint 3.6

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

Agora você pode adicionar --exclude (ou -e) veja PR aqui.

CLI

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

você está olhando usando

-e, --exclude         exclude globs from path expansion
Michael
fonte
você sabe como excluir vários caminhos?
Juan Henao
4
repetir a excluir argumento várias vezes
Markus Wagner
4
Correção pequena para a atualização: ela deve ser linterOptionse nãocliOptions
Jeb
4
Também vale a pena mencionar que os padrões glob dentro do diretório excluir deve ser relativo aotslint.json
Jeb
64

Atualmente, usando o Visual Studio Code e o comando para desativar o tslint é

/* tslint:disable */

trabalhou para mim. Confira esta página, cerca de 3/4 do caminho existem alguns comandos de desativação https://c9.io/lijunle/tslint

Algo a notar. A desativação acima desativa TODAS as regras tslint nessa página. Se você deseja desativar uma regra específica no meio da página, há uma lista de regras. Assim, você pode desativar itens específicos, como

/* tslint:disable comment-format */
DeadlyChambers
fonte
1
de todas as respostas, essa é a única que funcionou. obrigado!
Oz Lodriguez
27

Além da resposta de Michael, considere uma segunda maneira: adicionar linterOptions.exclude a tslint.json

Por exemplo, você pode ter as tslint.jsonseguintes linhas:

{
  "linterOptions": {
    "exclude": [
      "someDirectory/*.d.ts"
    ]
  }
}
arkhwise
fonte
17

A partir de tslint v5.8.0você pode definir uma excludepropriedade sob sua linterOptionschave no seu tslint.jsonarquivo:

{
  "extends": "tslint:latest",
  "linterOptions": {
      "exclude": [
          "bin",
          "**/__test__",
          "lib/*generated.js"
      ]
  }
}

Mais informações aqui .

Saugat
fonte
2
Isso deve ser marcado como a resposta correta (e atualizada em novembro de 2017).
Andres Elizondo
A maneira correta de fazer isso é substituindo cliOptionspor linterOptions.
Saugat 08/04/19
7

Eu tive que usar a sintaxe ** / * para excluir os arquivos em uma pasta:

    "linterOptions": {
        "exclude": [
          "src/auto-generated/**/*",
          "src/app/auto-generated/**/*"
        ]
    },
techguy2000
fonte
5

Atualmente, linterOptions é tratado apenas pela CLI. Se você não estiver usando a CLI, dependendo da base de código que estiver usando, será necessário definir a ignição em outro lugar. webpack, tsconfig, etc

Kris
fonte
3

Pode confirmar que, na versão tslint 5.11.0, ele funciona modificando o script lint no package.json, definindo o argumento exclude:

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

Felicidades!!

Sanid Sa
fonte
1
Você estava se referindo a alguma outra resposta ou simplesmente queria fornecer uma resposta alternativa para a pergunta?
Dharman
1

Como complemento

Para desabilitar todas as regras da próxima linha // tslint:disable-next-line

Para desativar regras específicas para a próxima linha :// tslint:disable-next-line:rule1 rule2...

Para desativar todas as regras da linha atual :someCode(); // tslint:disable-line

Para desativar regras específicas para a linha atual :someCode(); // tslint:disable-line:rule1

AlbertK
fonte