`tsc -b foo bar --watch`仅生成foo,而不生成bar

问题描述

我有一个带有两个不同源代码树的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","composite": true
  }
}

运行tsc -b --watch现在可以同时编译两个源代码树。