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

如何为Monorepo中的多个TypeScript项目配置通用tsconfig?

解决方案

方案1:通过继承根配置实现统一管理(推荐)

这种方式既保留每个项目的独立编译能力,又能复用通用的TypeScript规则,完美适配你的Monorepo结构。

  1. 根目录创建tsconfig.base.json,存放所有通用配置:
{
  "compilerOptions": {
    "strict": true,
    "declaration": true
    // 路径相关配置(outDir、declarationDir、include)交给子项目单独设置
  }
}
  1. 删除每个子项目下原有的tsconfig.json,替换为以下内容(以packages/foo/tsconfig.json为例):
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "outDir": "./dist",
    "declarationDir": "./types"
  },
  "include": ["./src"]
}

每个子项目仅需指定相对自身目录的路径,同时继承根配置的通用编译规则。

方案2:单个根tsconfig管理所有项目

如果希望用一个配置文件一次性编译所有子项目,可以通过通配符和路径映射实现:

根目录创建tsconfig.json:

{
  "compilerOptions": {
    "strict": true,
    "declaration": true,
    "rootDir": "./",
    "outDir": "./",
    "declarationDir": "./"
  },
  "include": [
    "packages/*/src/**/*"
  ],
  "exclude": [
    "packages/*/dist",
    "packages/*/types"
  ]
}
  • include用通配符匹配所有子项目的src目录
  • rootDir设为根目录,确保TypeScript根据文件相对路径,将编译产物输出到对应子项目的dist/types目录
  • 在根目录执行tsc即可一次性处理所有项目

为什么你的$PWD尝试失败?

TypeScript不识别Shell环境变量(如$PWD),配置中的路径只能使用相对路径或硬编码的绝对路径,硬编码绝对路径会导致配置无法在不同环境复用,因此不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:22:13