我正在尝试学习 TypeScript,并且了解了监视功能 (tsc -w)。我在一台 Windows 机器上,我通常更喜欢使用 VSCode 和适用于 Linux 的 Windows 子系统 (WSL)。我知道这是一个奇怪的设置,但通常可以通过在 VSCode 上使用 WSL 扩展来简化它。
我的问题如下:
我承认我不知道 tsc watch 是如何实现的,但我不确定为什么它不会仅在通过 Windows 编辑器修改时才获取对文件所做的更改。无论我在哪里第一次运行“tsc -w”命令,Typescript 都能正确转换甚至正确显示错误,但除非通过 ubuntu 编辑器保存更改,否则它不会接受更改。如果有人知道为什么会发生这种情况,请告诉我。
我在 tsconfig.json 中使用
watchOptions
后找到了解决方案。
watchFile
和 watchDirectory
的默认参数是“usefsevents”,它使用文档描述为“(默认):尝试使用操作系统/文件系统的本机事件进行文件更改”。将这些参数值更改为“dynamicPriorityPolling”、“fixedPollingInterval”或“priorityPollingInterval”可以解决我的问题。其他选项使用文件系统的本机事件来监听项目目录或 tsconfig.json 中列出的文件的变化。
使用的文档: