IntelliJ IDEA为何无法在保存时自动编译TypeScript?
我完全懂你的疑惑——IDE本身就该自动监测文件变动并触发编译,手动tsc -w能正常运行说明你的TypeScript配置本身没毛病,大概率是IDE的设置或缓存出了小问题,不用急着加文件监视器,先试试这些排查步骤:
检查TypeScript服务状态
打开IDEA的View > Tool Windows > TypeScript面板,看看有没有服务未启动或报错的提示。如果服务挂了,点击面板里的重启图标(循环箭头样式),很多时候重启服务就能让自动编译恢复正常。确认IDE自动保存设置
有时候不是编译没触发,而是文件没及时保存。去File > Settings > Appearance & Behavior > System Settings,确保勾选Save files automatically if application is idle for X seconds,或者设置成Save files on frame deactivation(切换窗口时自动保存),这样修改后的文件能第一时间被TypeScript服务检测到。验证TypeScript编译范围配置
打开File > Settings > Languages & Frameworks > TypeScript,检查Compiler options里的tsconfig.json路径是否正确指向你的项目配置文件。另外确认Include和Exclude规则没有排除你正在编辑的文件——如果文件不在编译范围内,IDE自然不会触发编译。清除IDE缓存并重启
IDE缓存偶尔会抽风导致功能异常。试试File > Invalidate Caches...,选择Invalidate and Restart,让IDE重新加载项目配置。这个方法对很多奇怪的IDE小毛病都很管用。排查插件冲突
有些第三方插件(比如代码格式化、版本控制类插件)可能会干扰TypeScript服务的运行。你可以暂时禁用除TypeScript以外的第三方插件(File > Settings > Plugins),重启IDE测试是否恢复正常。如果问题解决了,再逐个启用插件排查冲突源。
如果以上步骤都试过还是不行,再考虑添加文件监视器作为临时兜底方案——毕竟你用的是EAP预览版,偶尔会有未修复的小bug,文件监视器能帮你绕过IDE的自动编译问题。添加时去File > Settings > Tools > File Watchers,点击加号新建TypeScript监视器,配置好tsconfig.json路径和输出目录即可。
内容的提问来源于stack exchange,提问作者Petrus Theron

