NextJS 13本地Chrome输入框报错:TypeError: Cannot read properties of null (reading 'CodeMirror')
从你的情况来看,问题仅出现在本地Chrome环境,线上Chrome及其他浏览器均正常,且输入框代码本身无异常,根源大概率是本地Chrome的环境干扰或开发缓存冲突,给你几个针对性的解决方法:
先测试Chrome无痕模式
如果无痕模式下操作输入框不再报错,那肯定是你Chrome安装的某个扩展在作祟。CodeMirror是代码编辑器常用库,普通输入框不会主动调用它,大概率是表单增强、代码高亮类的扩展注入了相关代码,和你的Next.js项目发生了冲突。逐个禁用扩展排查就能定位问题。清除Chrome本地站点缓存
本地开发时,Chrome会缓存旧的静态资源或service worker,可能和新的Next.js代码不兼容。直接针对你的开发域名(比如localhost:3000)清理数据:打开Chrome开发者工具→Application→Storage→点击“Clear site data”,重启浏览器后再试。重置Next.js开发缓存
Next.js的本地缓存偶尔会出现异常,直接删除项目根目录的.next文件夹,以及node_modules/.cache目录,然后重新执行npm install和npm run dev,彻底重建开发环境。核对依赖版本一致性
虽然你没修改输入框相关代码,但项目中可能存在间接依赖CodeMirror的包,本地依赖版本和Vercel部署版本不一致也可能触发问题。对比本地package-lock.json和Vercel上的依赖版本,或者直接重新安装依赖确保和线上一致。
这些步骤基本能解决问题,毕竟线上环境没有本地的扩展和缓存干扰,其他浏览器也不存在Chrome特定的环境问题,问题根源肯定在本地环境的某个环节。
内容的提问来源于stack exchange,提问作者Jeroen van Bart

