web-dev-qa-db-ja.com

tslintを使用してフォルダー全体をリントする方法

Tslintを使用してフォルダ全体をリントすることは可能ですか?

Eslintを使用すると、eslint ./srcを実行してフォルダー全体を検証できます。

Tslintでも同じことをしようとすると、エラーError: EISDIR: illegal operation on a directoryが発生します。サイトの例では、単一のファイルを検証する方法を示していますが、通常はそうではありません。

コマンドラインからgulp-tslintのような余分なものなしでプロジェクトを検証することは可能ですか?

58
ValeriiVasin

Globを使用して、複数のファイルをリントできます。

通常、グロブをそのまま渡す場合、シェルはそれを展開し、結果のファイルをTSLintに渡します。たとえば、globstarオプションを有効にしたbash 4+では、次の操作を実行してすべての.tsおよび.tsxファイルをリントできます。

tslint src/**/*.ts{,x}

ただし、プラットフォームとシェル間で一貫して動作するコマンドを使用する方がよいでしょう。このために、引用符でグロブを渡すことができます。引用符で囲まれている場合、グロブはTSLintにそのまま渡され、TSLintは node-glob で処理します。その後、次のコマンドを実行して、上記と同じ結果を取得できます。

tslint 'src/**/*.ts?(x)'
92
JKillian

現在、このための--projectオプションがあります。例:

tslint --project .

docs から:

-p、-project:

リントされるファイルを決定するために使用されるtsconfig.jsonファイルを含むパスまたはディレクトリ。このフラグは、タイプチェッカーを必要とするルールも有効にします。

17
Matt Browne

プロジェクトにtsconfig.tsがある場合、-project advangeにアプローチできます。

私の場合、プロジェクトルートにtsconfig.tsを含むnativescriptプロジェクトがあるため、これがあります。

enter image description here

Jsonでは、「node_modules」および「platforms」ディレクトリが除外されていることに注意してください。 これは、「node_modules」ディレクトリと「platforms」ディレクトリを除く、プロジェクト内のすべてのファイルがマップされることを意味します。

Package.jsonにこのスクリプトを追加しました。「tslint」はエラーを記録し、「tslint-fix」はエラーを修正します。

scripts: {
    tslint: "tslint -p tsconfig.json",
    tslint-fix: "tslint --fix -p tsconfig.json"
}