支持将TypeScript程序的结构分割成更小的组成部分。即一个项目中构建多个单独工程
(1)在所有工程的基础tsconfig.json配置中添加
{
"compilerOptions": {
"composite":true, 开启工程引用和增量编译
"declaration":true 生成声明文件
}
}
输出outDir目录由各自工程指定
(2)子工程的tsconfig.json
{
"extends":'基础工程路径',
"compilerOptions": {
"outDir":'指定该工程及其依赖工程的输出路径'
},
"references": [ 子工程所依赖的工程
{ "path": "../utils", "prepend": true } 可以在引用中使用prepend选项来启用前置某个依赖的输出
path:'依赖工程的tsconfig.json的目录或者直接指向到配置文件本身(名字是任意的).'
当你引用一个工程时,会发生下面的事:
导入引用工程中的模块实际加载的是它输出的声明文件(.d.ts)。
如果引用的工程生成一个outFile,那么这个输出文件的.d.ts文件里的声明对于当前工程是可见的。
构建模式(后文)会根据需要自动地构建引用的工程。
]
}
(3)构建
tsc --build 可简写为b
tsc -b 配置文件地址,如果配置文件名为tsconfig.json,那么文件名则可省略
tsc -b src test
额外指令:
--verbose:打印详细的日志(可以与其它标记一起使用)
--dry: 显示将要执行的操作但是并不真正进行这些操作
--clean: 删除指定工程的输出(可以与--dry一起使用)
--force: 把所有工程当作非最新版本对待
--watch: 观察模式(可以与--verbose一起使用)
执行如下操作:
找到所有引用的工程
检查它们是否为最新版本
按顺序构建非最新版本的工程
代码示例:
目录结构:
基础配置:
new/tsconfig.json
子工程client:
公有的common:
子工程server:
测试用例test:
执行tsc -b src/server --verbose结果:
输出目录:
构建测试test目录: