使用 WSL 时如何让 TypeScript 增量编译 (tsc -w) 在 VSCode 上运行?

问题描述 投票:0回答:1

我正在尝试学习 TypeScript,并且了解了监视功能 (tsc -w)。我在一台 Windows 机器上,我通常更喜欢使用 VSCode 和适用于 Linux 的 Windows 子系统 (WSL)。我知道这是一个奇怪的设置,但通常可以通过在 VSCode 上使用 WSL 扩展来简化它。

我的问题如下:

  • 当我使用 VIM 或任何其他已安装的 Linux 编辑器编辑我的打字稿文件时,tsc watch 在 WSL 上工作
  • 当使用任何 Windows 编辑器(VSCode、记事本等)写入我的打字稿文件时,tsc watch 不会接收到变化
  • 即使我在 VSCode 上通过 WSL 连接运行 tsc watch,它也不会接收到任何变化

我承认我不知道 tsc watch 是如何实现的,但我不确定为什么它不会仅在通过 Windows 编辑器修改时才获取对文件所做的更改。无论我在哪里第一次运行“tsc -w”命令,Typescript 都能正确转换甚至正确显示错误,但除非通过 ubuntu 编辑器保存更改,否则它不会接受更改。如果有人知道为什么会发生这种情况,请告诉我。

typescript visual-studio-code tsc incremental-build
1个回答
0
投票

我在 tsconfig.json 中使用

watchOptions
后找到了解决方案。

watchFile
watchDirectory
的默认参数是“usefsevents”,它使用文档描述为“(默认):尝试使用操作系统/文件系统的本机事件进行文件更改”。将这些参数值更改为“dynamicPriorityPolling”、“fixedPollingInterval”或“priorityPollingInterval”可以解决我的问题。其他选项使用文件系统的本机事件来监听项目目录或 tsconfig.json 中列出的文件的变化。

我的解决方案示例:

使用的文档:

© www.soinside.com 2019 - 2024. All rights reserved.