NestJS回滚代码后仍报Cannot find module jwt-auth.guard错误
NestJS项目运行报错:无法找到src/auth/guards/jwt-auth.guard模块
报错堆栈信息
Error: Cannot find module 'src/auth/guards/jwt-auth.guard' Require stack: ~/Documents/Code/nestjs-passport-learning/dist/src/user/user.service.js ~/Documents/Code/nestjs-passport-learning/dist/src/user/user.module.js ~/Documents/Code/nestjs-passport-learning/dist/src/app.module.js ~/Documents/Code/nestjs-passport-learning/dist/src/main.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
问题异常点
该报错逻辑上存在矛盾:当前源码中user模块、user.service文件内完全没有引用该鉴权相关文件,仅在前期调试时曾引入过相关代码,后续排查问题时已经将相关引用全部移除,疑似构建流程或Node内部缓存了旧版本代码,运行时仍在查找已不存在的引用。
完整复现流程
- 初始状态下项目代码可正常编译运行
- 尝试在user.service的某个方法上添加
@UseGuards(JwtAuthGuard)装饰器 - 同期新增launch.json文件配置调试功能
- 首次运行代码:构建成功,但运行时抛出大量模块找不到的错误
- 停止服务后排查,确认报错原因是未在auth.module导出对应类、UserModule未引入AuthModule,修复上述问题后重启服务
- 重启后出现前文提到的找不到jwt-auth.guard模块的错误
- 为排查问题,移除
@UseGuards(JwtAuthGuard)装饰器、所有相关import语句、UserModule中的AuthModule引入,同时删除launch.json文件,完全回滚到10分钟前可正常运行的代码版本 - 回滚后仍然抛出相同错误,此时user模块中已经不存在任何对jwt-auth.guard文件的引用
已尝试的无效排查方案
- 删除jwt-auth-guard.ts文件本身
- 切回尚未编写jwt-auth-guard.ts文件的更早代码版本
- 重启开发机
以上操作全部无效,无论如何调整代码,都会抛出相同的找不到模块错误,当前运行的代码和之前正常运行的版本无任何差异。
诉求
需要该问题的排查思路,目前无法定位问题根因,也未检索到同类问题的解决方案。
内容的提问来源于stack exchange,提问作者richard12511
相关产品推荐
相关产品推荐

