如何用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的解决办法
你的方案不生效主要有两个可能原因,对应修复方式:
- TypeScript版本过低:TypeScript 3.2及以上才支持JavaScript格式的
tsconfig.js文件,先检查你的TS版本,低于3.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
相关产品推荐
相关产品推荐

