Typescript 打字稿:Watch&;同时编译多个目录(monorepo)

Typescript 打字稿:Watch&;同时编译多个目录(monorepo),typescript,npm,monorepo,Typescript,Npm,Monorepo,我一直在网上搜寻解决方案,但没有找到任何值得的。基本上,我正在寻找一种工具或某种方法来启动同时在多个目录中监视/编译TypeScript文件 我有一个带有作用域NPM包(@test/one、@test/two、@test/three等)的monorepo,我想同时查看/编译所有这些包 看起来TS不支持这一点,也没有任何工具可以做到这一点。我发现的最接近的东西是nodemon,我可以让它同时监视多个目录,但它只支持在单个位置执行脚本/二进制文件,而我需要它在更改时在每个监视的目录中执行'tsc'

我一直在网上搜寻解决方案,但没有找到任何值得的。基本上,我正在寻找一种工具或某种方法来启动同时在多个目录中监视/编译TypeScript文件

我有一个带有作用域NPM包(@test/one、@test/two、@test/three等)的monorepo,我想同时查看/编译所有这些包

看起来TS不支持这一点,也没有任何工具可以做到这一点。我发现的最接近的东西是nodemon,我可以让它同时监视多个目录,但它只支持在单个位置执行脚本/二进制文件,而我需要它在更改时在每个监视的目录中执行'tsc'

我能用nodemon做的最好的事情是以下几点,但这当然不是一个很好的方法,因为它编译所有包,即使只有一个包发生了更改:

npx nodemon --watch test-shared-api --watch test-shared-redux --watch test-shared-types -e js,ts,jsx,tsx --exec "npx tsc --build test-shared-api/tsconfig.json && npx tsc --build test-shared-types/tsconfig.json && npx tsc -build test-shared-redux/tsconfig.json"
同时,我可以在package.json中执行以下操作,这会更好,但仍然可以做得更好:

  "scripts": {
"ts-watch-shared-types": "tsc -p packages/@test-shared/test-shared-types/tsconfig.json -w",
"ts-watch-shared-api": "tsc -p packages/@test-shared/test-shared-api/tsconfig.json -w",
"ts-watch-shared-redux": "tsc -p packages/@test-shared/test-shared-redux/tsconfig.json -w",
"ts-shared-watch": "concurrently -k -n w: npm:ts-watch-shared-*"
  },

有什么想法吗?

您可以尝试与一起使用,尽管该功能非常新且存在一些错误(截至2018年9月)。

您可以尝试与一起使用,尽管该功能非常新且存在一些错误(截至2018年9月)。

这是编译参考资料的一个非常好的选项!如果您有一些非引用包,另一个选项是使用类似于lerna的工具从根目录启动watch命令,然后在IDE中设置它来启动它。在这种情况下,您可以像并发一样独立,但仍然可以在包的各个级别定义watch命令,这是编译引用的一个非常好的选项!如果您有一些非引用包,另一个选项是使用类似于lerna的工具从根目录启动watch命令,然后在IDE中设置它来启动它。在这种情况下,您可以像并发一样独立,但仍然可以在包的各个级别定义watch命令