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

如何用tsconfig.js替代tsconfig.json实现多项目TypeScript配置复用?

解决方案

推荐方案:使用TypeScript官方的extends字段(最简洁可靠)

不需要用JavaScript格式的配置文件,直接在项目的tsconfig.json里通过extends字段引用你npm包中的配置,还能按需覆盖属性,完全符合TypeScript的官方设计:

{
  "extends": "@myOrg/myPackage/tsconfig.json",
  "compilerOptions": {
    // 在这里覆盖需要修改的配置项,比如调整输出目录
    "outDir": "./dist",
    // 也可以新增npm包配置里没有的属性
    "noImplicitAny": true
  },
  "include": ["./src/**/*"]
}

编译命令保持原来的即可:tsc -p tsconfig.json --incremental

如果坚持用tsconfig.js的解决办法

你的方案不生效主要有两个可能原因,对应修复方式:

  1. TypeScript版本过低:TypeScript 3.2及以上才支持JavaScript格式的tsconfig.js文件,先检查你的TS版本,低于3.2的话升级到稳定版本。
  2. require路径错误:不需要写相对路径到node_modules,Node会自动查找已安装的npm包,修改tsconfig.js内容:
const baseConfig = require('@myOrg/myPackage/tsconfig.json');

module.exports = {
  ...baseConfig,
  // 覆盖配置时注意嵌套结构,比如compilerOptions需要展开后再修改
  compilerOptions: {
    ...baseConfig.compilerOptions,
    outDir: './dist'
  }
};

编译命令依然用tsc -p tsconfig.js --incremental,不需要额外标志。

关于你的疑问

JavaScript格式的配置文件并非只适用于非tsconfig的json文件,TypeScript完全支持tsconfig.js,只是官方更推荐用extends的方式做配置复用——因为它是专门为这个场景设计的,语法更简洁,也不容易出现路径或加载问题。

内容的提问来源于stack exchange,提问作者Paul-Marie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:38:27