使用ts-node-dev实现应用热重载失效,寻求问题排查帮助
解决ts-node-dev热重载失效问题
1. 修复tsconfig.json的语法错误
你的tsconfig.json里include数组存在语法错误:"src/**/*.ts"后面缺少逗号,直接衔接exclude字段,导致整个JSON解析失败。这会让ts-node-dev无法正确识别需要监听的文件范围,直接导致热重载失效。
修正后的tsconfig.json:
{ "compilerOptions": { "target": "es6", "module": "commonjs", "outDir": "./dist", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "typeRoots": [ "./src/types", "./node_modules/@types/" ] }, "include": [ "src/**/*.ts" ], "exclude": [ "node_modules" ] }
2. 优化ts-node-dev启动参数
可以给ts-node-dev添加--watch参数明确指定监听目录,同时加上--clear参数方便查看重载日志:
"dev": "ts-node-dev --respawn --transpile-only --watch src --clear src/index.ts"
3. 检查基础配置与环境
- 确认编辑器自动保存已开启:如果文件未实际保存到磁盘,ts-node-dev监听不到变化
- 清理缓存:删除项目根目录下的
.ts-node或node_modules/.cache文件夹,避免缓存干扰监听逻辑 - 确保ts-node-dev为本地安装:全局安装版本可能和项目依赖的TypeScript版本不兼容,执行
npm install ts-node-dev --save-dev锁定本地匹配版本
4. 验证监听状态
修改src/index.ts后,查看终端是否出现[INFO] xx:xx:xx Restarting due to changes...类日志,出现则说明热重载已正常工作。
内容的提问来源于stack exchange,提问作者Karlito Brigante
相关产品推荐
相关产品推荐

