web-dev-qa-db-ja.com

TSLintの `extends`と` rulesDirectory`の違いは何ですか

TSLint.json構成ファイル( https://github.com/palantir/tslint )は、extendsrulesDirectory配列をサポートしています。

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

ドキュメントは、ツールに不慣れな新規ユーザーにとっては、解釈に少しオープンなようです。

VSコードエディタでの使用とextendsing全般でのrulesDirectorytslintの動作について、いくつかの点を明確にしていただければ幸いです。

  1. extendsonlyはデフォルトの構成を提供しますか(パッケージによって提供される場合)?

  2. したがって、これはrulesDirectoryとは異なりますか?

    • rulesDirectoryは、具体的にオプトインするためのルールを提供するだけですか(ルートtslint.jsonでルールを指定する場合に必要です)?

    • tslintパッケージをextendsrulesDirectoryの両方で指定する必要がありますか?

  3. extendsが別のtslint構成ファイルからデフォルトを提供すると仮定すると、rulesDirectoryを指定して、特定のフラグを上書きするルールを追加できますか?

IntelliSenseオートコンプリートに表示されるのは一部のルールと、より明確にしていただければ幸いないくつかの動作のみであるため、懸念しています。

11
mittens pair

TSLintのextendsrulesDirectoryの違いは何ですか

彼らは非常に異なっています。

  • extendsを使用すると、既存のtslint構成を適用して拡張できます
  • rulesDirectoryを使用すると、カスタムルールのディレクトリを追加できます。
5
basarat

?回答: 2018年4月6日現在のtslint構成ドキュメント

  • extends?: string | string[]:組み込み構成プリセットの名前(以下の組み込みプリセットを参照)、またはこの構成によって拡張される他の構成ファイルへのパスまたはパスの配列。この値は、ノードモジュール解決セマンティクスを使用して処理されます。たとえば、"tslint-config"の値は、TSLintに「tslint-config」という名前のモジュールのメインファイルを構成ファイルとしてロードしてロードするように指示します。ノードモジュール内の特定のファイルも指定できます。 "tslint-config/path/to/submodule"。 JSONファイルまたはJSモジュールへの相対パスもサポートされています。 "./tslint-config"
  • rulesDirectory?: string | string[]:[カスタムルール] [2]のディレクトリへのパスまたはディレクトリへのパスの配列。これらの値は、index.jsがルールディレクトリに配置されている場合、ノードモジュール解決セマンティクスを使用して処理されます。モジュールが解決できない場合は、相対パスまたは絶対パスを使用するようにフォールバックします。モジュールの解決を避けたい場合は、相対パスまたは絶対パスを直接使用できます(例:./)。

このrulesブロックで指定されたルールは、拡張される基本構成で構成されたルールをオーバーライドします。

1
mittens pair

docs を見てください。

主な違いは次のようです:

  • "extends"組み込みルールのセットを使用します

  • "rulesDirectory"custom (組み込みではなく独自の)ルールを使用します

0
WebBrother