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

Nodemon不自动刷新求助:修改代码后浏览器无变化

解决Nodemon重启后浏览器无变化的问题

以下是几个经过验证的排查方向和解决办法:

  • 强制刷新浏览器缓存
    浏览器大概率缓存了旧的响应内容,按Ctrl+F5(Windows/Linux)或Cmd+Shift+R(macOS)强制刷新页面,或者直接用无痕模式打开测试,排除浏览器缓存干扰。

  • 确认服务是否真的完成重启
    在你的index.js开头加一行日志:

    console.log('服务已启动/重启:', new Date().toLocaleString())
    

    修改代码后看终端是否输出新的日志。如果没有,说明nodemon的文件监听没生效;如果有,那问题出在服务本身或浏览器。

  • 配置nodemon监听所有需要的文件类型
    nodemon默认只监听.js、.mjs等少数文件类型,如果你修改的是模板文件(如.ejs、.pug)、静态资源(.css、.html)或配置文件(.json),需要手动指定监听扩展名:

    • 临时方案:启动时加参数 nodemon -e js,json,ejs,css index.js
    • 持久方案:在项目根目录创建nodemon.json文件,内容如下:
      {
        "ext": "js,json,ejs,css,html"
      }
      
  • 检查代码中的缓存逻辑
    如果你的服务里有模块缓存、数据缓存逻辑,比如启动时一次性加载配置文件并缓存,或者用了内存缓存库,即使nodemon重启了服务,也要确保这些缓存会在重启时被重置。比如对于require加载的模块,Node.js会缓存模块内容,nodemon重启服务会重新加载所有模块,但如果代码里有自定义的持久缓存逻辑,需要排查是否影响了更新。

  • 解决系统文件监听限制
    部分Linux/macOS系统对文件监听的数量有限制,导致nodemon无法检测到文件变化:

    • macOS:终端执行 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
    • Linux:执行 echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches(临时生效,重启后需重新执行,或写入sysctl配置文件持久生效)
  • 禁用nodemon默认忽略规则
    nodemon默认会忽略node_modules、.git等目录,也会读取.gitignore里的规则,如果你的工作目录被误忽略了,可以在nodemon.json里设置:

    {
      "ignore": []
    }
    

    或者手动指定需要监听的目录:

    {
      "watch": ["./src", "./views"]
    }
    

内容的提问来源于stack exchange,提问作者Kotejichizu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:40:27