我有一个复杂的 TS 编译工作流程,我想让我的观察者更快(而且仍然很聪明)。我目前有 3 种不同的 TS 编译,它们在 Grunt 启动时执行,但也在监视更改时执行。
grunt-ts
配置:
https ://gist.github.com/Vadorequest/f1fb95ab4bbc786f420b
grunt-watch
配置:
https ://gist.github.com/Vadorequest/eaa82c292a5d3e1ee51f
它目前有效。但是每次对属于一组文件的任何 TS 文件进行更改时,重新编译每个文件都需要花费太多时间。我正在寻找一种只编译需要编译的方法,以一种聪明的方式。(这意味着如果 A.ts 继承了 B.ts,如果 B 被更改,那么 A 也应该被重新编译,这应该是可能的,因为 WebStorm IDE 能够使用它的Files Watchers来做到这一点)
我在https://github.com/TypeStrong/grunt-ts#fast上阅读了一些关于快速编译的内容,但我似乎无法使用它,但我对此感到困惑。(见https://github.com/TypeStrong/grunt-ts/issues/293)
我正在寻找解决方案,并寻求建议,因为我认为我的设置可以改进。拥有服务器端 TS 文件,甚至在服务器和客户端之间共享 TS 文件是很棒的,但它增加了很多难以理解和维护的编译工作流程。也许使用最近的功能tsconfig.json
会有所帮助?任何意见,将不胜感激。
更多细节:
- serverCommonJs:服务器使用之前编译的 TS 文件来启动应用程序,例如控制器和模型。
- clientCommonJs:大多数客户端脚本都在 CommonJs 中而不是 AMD 中,因为它们都是连接和缩小的,并且与需要大量设置的 AMD 相比,使用 commonJS 更容易。
- amd:有些文件是在 AMD 中编译的,不管它们是用在服务器还是客户端,或者两者兼而有之。
在我的电脑上编译一组文件大约需要 1.5s 到 2.5s。编译后,它们都会被复制到一个临时文件夹中,该文件夹提供给浏览器(资产)。所以它很容易花费 5 到 10 秒,如果只编译和复制更改的文件,它可能会快得多。
对于 LESS 文件,我也有类似的问题,但这是另一回事,由于我只有一组 LESS 文件,因此修复起来应该更简单。