为什么 tsc 忽略 tsconfig.json 中的包含和排除?

Why does tsc ignore include and exclude in tsconfig.json?

我有 tsconfig.json:

{
  "compilerOptions": {
    "target": "ES6",
    "lib": [
      "DOM",
      "ES6"
    ]
  },
  "include": [
    "src/server/**/*"
  ],
  "exclude": [
    "node_modules",
    "dist",
    "public"
  ]
}

当我 运行 tsc --project tsconfig.json 它完全忽略了 includeexclude 配置并且 node_modules 编译失败。

它成功的唯一方法是tsc src/server/**/*.ts,但它没有使用配置。

我验证了,编译器处理了配置,因为当我将 "watch": true 添加到 "compilerOptions" 时,它等待更改。

我看了documentation,没看懂。看起来我把它放在 json 文件中的正确位置。

有没有人知道如何解决?


macOS Big Sur 上的编译器版本:

% tsc -v
Version 4.0.5

正如问题下方的评论所写,我不得不添加 "skipLibCheck": true,所以最终的 json 看起来像:

{
  "compilerOptions": {
    "target": "ES6",
    "lib": [
      "DOM",
      "ES6"
    ],
    "skipLibCheck": true
  },
  "include": [
    "src/server/**/*"
  ],
  "exclude": [
    "node_modules",
    "dist",
    "public"
  ]
}

然后编译成功:

% tsc -p tsconfig.json 
% echo $?
0

我遇到了同样的问题并且我解决了它但是升级了打字稿:

npm install -g typescript