`tsc -b foo bar --watch` 只构建 foo,不构建 bar
`tsc -b foo bar --watch` only builds foo, but not bar
我有一个带有两个不同源代码树的 TypeScript 包(使用 yarn 2 作为包管理器):
|- src-bin
\- src
src-bin
中的源是目标节点,而 src
中的源是针对浏览器环境的。因此,我有两个不同的 tsconfig.json
文件。
我通常用 tsc -b . src-bin
构建它们,效果很好。
但是,在“watch-mode”中,tsc
只编译和监视 src
,而不是 src-bin
。
我实际上能够使用项目参考来解决它:
tsconfig.json
(for 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
现在编译两个源代码树。
我有一个带有两个不同源代码树的 TypeScript 包(使用 yarn 2 作为包管理器):
|- src-bin
\- src
src-bin
中的源是目标节点,而 src
中的源是针对浏览器环境的。因此,我有两个不同的 tsconfig.json
文件。
我通常用 tsc -b . src-bin
构建它们,效果很好。
但是,在“watch-mode”中,tsc
只编译和监视 src
,而不是 src-bin
。
我实际上能够使用项目参考来解决它:
tsconfig.json
(for 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
现在编译两个源代码树。