You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS代码变更时如何实现应用自动刷新重载

方法1:使用NestJS官方CLI的watch模式(推荐)

这是NestJS官方原生支持的方案,无需额外安装第三方依赖,适配绝大多数开发场景。

  • 首先确认项目package.json的scripts字段中存在以下配置,全新NestJS项目默认会自带,缺失的话自行补充即可:
{
  "scripts": {
    "start:dev": "nest start --watch"
  }
}
  • 直接运行对应脚本启动开发服务即可:
    • npm用户执行:npm run start:dev
    • yarn用户执行:yarn start:dev
    • pnpm用户执行:pnpm run start:dev
      该模式会自动监听src目录下所有TypeScript文件的改动,自动完成编译、应用重载,修改代码保存后数秒即可生效,无需手动重启服务。
方法2:使用nodemon自定义监听(适合需要定制监听规则的场景)

如果你需要自定义监听的目录、忽略文件、适配特殊文件类型,可以用nodemon实现自动重载。

  • 第一步先安装nodemon为开发依赖:
    npm install nodemon --save-dev
  • 在项目根目录新建nodemon.json配置文件,参考配置如下:
{
  "watch": ["src"],
  "ext": "ts,js,json",
  "ignore": ["src/**/*.spec.ts", "node_modules"],
  "exec": "nest start"
}

你可以根据需求修改watch(监听目录)、ext(监听的文件后缀)、ignore(忽略的文件/目录)字段规则。

  • 在package.json的scripts字段中添加启动脚本:
{
  "scripts": {
    "start:dev": "nodemon"
  }
}
  • 运行npm run start:dev启动服务即可。
常见问题排查
  • 修改代码后未触发重载:先确认修改的文件是否在配置的监听目录范围内,默认两种方案都只监听src目录,如果你修改的是根目录配置文件,需要手动将对应路径添加到监听规则中。
  • 重载失败提示端口被占用:检查是否有其他进程占用了服务端口,或者之前的服务进程未正常退出,杀死对应进程后重新启动即可。
  • 如果需要保留应用运行时状态不丢失,可以额外开启NestJS的HMR(热模块替换)能力,在启动命令中添加--hmr参数即可,该能力需要少量额外适配代码,普通开发场景无需使用。

内容的提问来源于stack exchange,提问作者Lucas Gardini Dias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:36:07