Immer依赖解析失败及MapSet插件加载异常问题求助
解决Immer与Redux Toolkit相关的两个常见错误
一、处理「Module not found: Error: Can't resolve 'immer/dist/immer'」错误
- 检查导入路径:Redux Toolkit已经内置Immer,无需手动导入
immer/dist/immer。如果是使用RTK的状态管理,直接通过createSlice或createReducer即可使用Immer的不可变更新逻辑;如果是用use-immer,确保导入的是use-immer而非深层路径。 - 清理依赖缓存:删除
node_modules和package-lock.json,重新安装依赖:
(使用yarn或pnpm的话替换成对应命令:rm -rf node_modules package-lock.json npm installyarn install --force/pnpm install --force) - 排查依赖冲突:查看
package-lock.json中是否存在多个版本的Immer,手动删除锁文件后重新生成可解决嵌套依赖导致的版本不一致问题。
二、处理「Uncaught Error: [Immer] The plugin for 'MapSet' has not been loaded into Immer」错误
- 手动启用MapSet插件:在应用初始化的入口文件(如
index.js或Redux store的配置文件)中添加以下代码:import { enableMapSet } from 'immer'; enableMapSet(); - 检查状态类型:如果你的Redux状态中使用了
Map或Set类型的数据,Immer默认不支持这类类型的不可变更新,必须启用该插件才能正常处理。 - 确认导入正确性:确保
enableMapSet是从immer包直接导入,而非其他自定义路径。
内容的提问来源于stack exchange,提问作者Affan Khan
相关产品推荐
相关产品推荐

