NestJS微服务:本地服务器代码修改不生效问题求助
NestJS微服务代码修改后不生效的解决方案
确认开启热重载
开发环境必须用监听模式启动服务,否则文件修改不会触发重新编译:- 检查
package.json的scripts配置,确保包含:"scripts": { "start:dev": "nest start --watch" } - 运行
npm run start:dev启动服务,而非直接执行nest start。
- 检查
清理编译缓存
旧的编译产物可能未被覆盖,导致运行旧代码:- 手动删除项目根目录下的
dist文件夹,再重启服务。 - 可添加前置脚本自动清理(需先安装
rimraf:npm install rimraf --save-dev):"scripts": { "prestart:dev": "rimraf dist", "start:dev": "nest start --watch" }
- 手动删除项目根目录下的
验证Logger实例正确性
确保Controller中的Logger是当前模块的实例,而非全局旧实例:import { Controller, Logger, MessagePattern } from '@nestjs/common'; @Controller() export class AppController { private readonly logger = new Logger(AppController.name); @MessagePattern({ role: 'test', cmd: 'find_all' }) async findAll() { this.logger.log('Hello, User!'); } }检查客户端调用的消息模式
确认调用微服务的客户端发送的消息模式与Controller中的{ role: 'test', cmd: 'find_all' }完全匹配(包括字段名、大小写),避免因模式不匹配触发旧逻辑。对齐Nest CLI版本
全局CLI与项目本地CLI版本不一致可能导致编译异常:- 查看全局版本:
nest --version - 查看本地版本:
npm list @nestjs/cli - 优先使用本地CLI启动:
npx nest start --watch
- 查看全局版本:
内容的提问来源于stack exchange,提问作者Vishal Petkar
相关产品推荐
相关产品推荐

