Microsoft/TypeScript

How tsconfig exclude pattern should actually work

オープン

#12,824 opened on 2016/12/10

 (5 件のコメント) (7 件のリアクション) (0 人の担当者)TypeScript (13,395 件のフォーク)batch import
Help WantedSuggestion

Repository metrics

Stars
 (108,860 個のスター)
PR merge metrics
 (PR metrics pending)

説明

TypeScript Version: 2.1.1 / nightly (2.2.0-dev.201xxxxx)

Say we have a following structure to specially to test exclude pattern:

/node_modules
  /module/some.ts
nested/
  /node_modules
    /module/some.ts
  /deep-nested/
    /node_modules
      /module/some.ts

Will check this using tsc --listFiles

How exclude patterns work:

  1. "node_modules" - will exclude only /node_modules/module/some.ts
  2. "*/node_modules" (the same effect as /node_modules/") - will exclude only /nested/node_modules/module/some.ts
  3. "**/node_modules" - will exclude nothing
  4. "**/node_modules/*" - will exclude everything (also nested, deep-nested)

Some behaviour seem strange to me

  • why in case 3 it excludes nothing (considering case 2 works)?
  • by default (if exclude not specified) case 1 will be effective, shouldn't it be 4) which excludes node_modules in nested folders as well?

コントリビューターガイド