Mac M1 Ventura系统下TypeScript实时编译(tsc -w)找不到文件求助
M1 Mac Ventura 13.3.1 下 TypeScript 实时编译(
tsc -w)异常问题 环境信息
- 设备:搭载M1处理器的Mac
- 系统:Ventura 13.3.1
- 依赖版本:
- Node.js: 20.3.0
- NPM: 9.6.7
- TypeScript Compiler (tsc): 5.1.6
问题现象
单独执行tsc命令编译TypeScript文件无明显异常,但使用tsc -w开启实时编译时,会抛出无法找到最新修改的TypeScript文件的错误。
已尝试的无效方案
- 修改
tsconfig.json配置(如调整include/exclude、watchOptions等) - 升级TSC至当前最新版本(5.1.6)
- 使用
sudo权限执行tsc -w命令
可行解决方案建议
1. 调整文件系统权限与路径
M1 Mac的系统完整性保护(SIP)或目录权限可能干扰文件监听:
- 将项目从系统保护路径(如
/System、/Library)移至用户目录(如~/Documents)后重试 - 在「系统设置-隐私与安全性-文件与文件夹」中,给终端/开发工具(如VS Code)授予项目目录的完全访问权限
2. 强制TSC使用轮询模式监听文件
在tsconfig.json中添加监听配置,关闭系统原生文件事件监听,改用轮询:
{ "watchOptions": { "watchFile": "fixedPollingInterval", "watchDirectory": "fixedPollingInterval", "fallbackPolling": "dynamicPriority" } }
保存配置后重新执行tsc -w验证效果。
3. 切换Node.js LTS版本
Node.js 20.x在M1 Mac上可能存在文件监听兼容性问题,尝试降级至18.x LTS版本:
- 通过
nvm安装:nvm install 18 - 切换版本:
nvm use 18 - 重装依赖:
npm install后测试tsc -w
4. 用第三方工具替代原生监听
如果以上方案无效,可使用nodemon配合tsc实现实时编译:
- 安装依赖:
npm install --save-dev nodemon - 在
package.json中添加脚本:{ "scripts": { "watch": "nodemon --ext ts --exec 'tsc'" } } - 启动监听:
npm run watch
内容的提问来源于stack exchange,提问作者cddsgtc
相关产品推荐
相关产品推荐

