Microsoft/TypeScript

How tsconfig exclude pattern should actually work

Open

#12,824 opened on 2016年12月10日

GitHub で見る
 (5 comments) (7 reactions) (0 assignees)TypeScript (48,455 stars) (6,726 forks)batch import
Help WantedSuggestion

説明

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?

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