【发布时间】:2019-02-03 09:44:24
【问题描述】:
我的团队正在维护多个包,我们正在尝试创建一个共享的tsconfig.json,并为所有这些包提供通用配置。它包含我们对编译目标、JSX、输出目录和包含文件的偏好,例如:
{
"compilerOptions": {
"module": "esnext",
"target": "es5",
"lib": ["es5", "dom"],
"jsx": "react",
"outDir": "build/dist"
},
"include": ["./src/**/*.ts", "./src/**/*.tsx"]
}
我们将此文件发布为共享的 npm 模块,例如 my-build-config,然后在每个项目中使用 extends:
{
"extends": "./node_modules/my-build-config/tsconfig.json"
}
这里的问题是共享配置中的所有路径都是相对于文件位置的。例如。它将尝试包含不是来自当前项目的“.ts”文件,而是包含在my-build-config 中。例如,它寻找的是./node_modules/my-build-config/src/index.ts,而不是./src/index.ts。
有没有办法共享文件位置,这样它们就不会在 10 多个包中重复?可能类似于 Jest 对 rootDir 属性所做的事情。
【问题讨论】:
标签: typescript node-modules tsconfig