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

redux-toolkit启动渲染报immer相关TypeError非函数错误如何修复

报错根因

该错误由@reduxjs/toolkit与加载到的immer实例版本不兼容触发:

  • 项目中手动安装了不兼容的immer版本(如v10+,该版本已移除enableES5导出,且调整了导出结构),与@reduxjs/toolkit依赖的immer大版本不匹配
  • 包管理器依赖提升逻辑异常,导致@reduxjs/toolkit加载到了错误版本的immer
  • 禁止直接修改node_modules下的第三方依赖源码:改动会在下次依赖安装时被覆盖,还会造成团队开发环境不一致,属于不可持续的临时方案。
修复方案

按优先级依次尝试:

  • 移除手动安装的冗余immer依赖
    @reduxjs/toolkit已经内置了对应兼容版本的immer,不需要额外单独安装。执行对应包管理器的命令移除手动安装的immer后重装依赖:
    # npm
    npm uninstall immer && npm install
    
    # yarn
    yarn remove immer && yarn install
    
    # pnpm
    pnpm remove immer && pnpm install
    
    如果业务代码确实需要单独调用immer的API,安装与当前@reduxjs/toolkit版本匹配的immer版本即可,比如RTK 1.x系列对应immer 9.x版本,不要安装v10及以上版本。
  • 全量清理依赖缓存重装
    如果移除冗余依赖后仍报错,是本地依赖缓存或残留文件导致,全量删除依赖目录和锁文件后重装:
    # 删除依赖目录和对应锁文件
    rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml
    
    # 按自己用的包管理器执行装包
    npm install
    # 或 yarn install
    # 或 pnpm install
    
  • 强制锁定全局immer版本
    针对monorepo项目或包管理器依赖提升持续异常的场景,可以通过配置强制项目内所有依赖引用的immer统一为兼容版本:
    yarn/pnpm用户在package.json中添加:
    {
      "resolutions": {
        "immer": "^9.0.21"
      }
    }
    
    npm用户在package.json中添加:
    {
      "overrides": {
        "immer": "^9.0.21"
      }
    }
    
    添加完成后重新执行依赖安装命令即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:01:21