You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需创建新tsconfig.json,如何覆盖tsconfig的include配置?

如何通过tsc CLI直接覆盖include配置?

我们的tsconfig.json配置如下:

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "checkJs": false,
    "declaration": true,
    "esModuleInterop": true,
    "jsx": "react-jsx",
    "lib": [
      "es2021",
      "dom"
    ],
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "outDir": "dist",
    "skipLibCheck": true,
    "strict": true,
    "target": "es2018"
  },
  "include": [
    "src",
    "tests"
  ]
}

该配置会导致dist目录同时包含src和tests子目录,输出结构如下:

$ tree dist -L 1
dist
├── src
└── tests

2 directories, 0 files

若要仅构建src目录的内容,常规做法是创建如tsconfig.build.json的新配置文件,继承原配置并覆盖include字段:

{
  "extends": "./tsconfig.json",
  "include": [
    "src"
  ]
}

但在拥有数百个包的monorepo中,这种方式十分繁琐。


可以直接通过tsc CLI指定编译路径来覆盖配置文件中的include规则,无需创建额外配置文件。

具体做法是执行tsc命令时,传入src目录的路径,同时用--project(或简写-p)指定原配置文件——CLI传入的文件路径优先级会高于配置文件中的include,TypeScript会忽略原配置里的include,只编译你指定的内容。

示例命令:

tsc -p tsconfig.json src/**/*

或者更简洁的写法:

tsc -p tsconfig.json src/**

执行后,dist目录只会生成src对应的编译产物,不会包含tests相关内容。


内容的提问来源于stack exchange,提问作者Gajus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:22:42