web-dev-qa-db-ja.com

tsconfig.jsonで「.spec.ts」で終わるファイルを除外する方法

Tsconfig.jsonにいくつかのファイルを含めようとしていますが、含めたくないファイルが含まれています。 (検索構文でアスタリスクがどこでも使用されているのがわかりますが、この構文がどこから来ているのか、どこからそれを学ぶのか分かりません。)リポジトリから(コンパイルされていないソースで).tsで終わるファイルを含めようとしています、ただし.spec.tsで終わるものを除きます。

以下には、必要なファイルが含まれていますが、不要なファイルは正常に除外されません。

  "include": ["node_modules/dashboard/**/*.ts"],
  "exclude": ["node_modules/dashboard/**/*.spec.ts"],

これらのファイルを除外するにはどうすればよいですか?

編集:最初は**/**.ts**/**.spec.tsを使用していました。これは正しくありませんでしたが、修正したので、同じ問題が発生しています。

8
BBaysinger

TypeScriptハンドブックには、tsconfigファイルに関する適切な記述があります

ハンドブックの例は次のとおりです。

"exclude": [
    "node_modules",
    "**/*.spec.ts"
]

フォルダーには**を使用し、ファイル名のワイルドカードには*(単一のアスタリスク)を使用していることに注意してください。

特定のサブディレクトリ内のファイルだけでなく、「すべてのスペックファイル」を除外したいと思うので、通常はこれ以上具体的である必要はありません。

これがうまくいかないとき

これが機能しない場合があります。

  1. ファイルをincludeセクションとexcludeセクションの両方に含めた場合-winsを含めます
  2. 除外されたファイルをインクルードされたファイルにインポートする場合。
  3. 古いバージョンのコンパイラを使用している場合(tsconfigの初期バージョンではワイルドカードを使用できませんでした)
  4. tsc app.tsを使用してコンパイルする(または他の引数を渡す)-これを行うと、tsconfigは無視されます
20
Fenton

使用できます

"exclude": ["node_modules/dashboard/**/*.spec.ts"]

1
Nimeshka Srimal

に変更:

"include": ["node_modules/dashboard/**/*.ts"],
"exclude": ["node_modules/dashboard/**/*.spec.ts"],

問題を修正します。 ドキュメント から:

* 0個以上の文字に一致します(ディレクトリ区切り文字を除く)
?任意の1文字に一致します(ディレクトリ区切り文字を除く)
** /すべてのサブディレクトリに再帰的に一致します

**の2番目の使用は、インクルードが広すぎる原因となっていました。

1
Jason Aller