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?

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

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 */

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"
    ]
  }
}

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 .


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/**/*"
        ]
    },

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


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!!


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.