`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 现在编译两个源代码树。