我有一个TypeScript包(使用yarn 2作为包管理器(,它有两个不同的源树:
|- src-bin
- src
src-bin
中的源以节点为目标,而src
中的源则以浏览器环境为目标。因此,我有两个不同的tsconfig.json
文件。
我通常使用tsc -b . src-bin
构建它们,它工作得很好。
然而,在";"手表模式";,tsc
只编译并监视src
,而不编译和监视src-bin
。
我实际上能够使用项目引用来解决它:
tsconfig.json
(用于src(:
{
"extends": "../tsconfig.base.json",
"include": ["src/**/*.ts", "src/**/*.tsx"],
"references": [{ "path": "src-bin" }],
"compilerOptions": {
"types": [],
"rootDir": "src",
"outDir": "build",
"noEmit": false,
"declaration": true,
"composite": true
}
}
src-bin/tsconfig.json
(用于src-bin(:
{
"extends": "../../tsconfig.base.json",
"include": ["**/*.ts"],
"compilerOptions": {
"types": ["node"],
"rootDir": ".",
"outDir": "../build/bin",
"noEmit": false,
"declaration": true,
"composite": true
}
}
运行tsc -b --watch
现在编译BOTH源树。