升级Next.js至15.5.2遇错误:mini-css-extract-plugin序列化器已注册
问题场景
在Turborepo单仓库项目中,将Next.js从15.3.3版本升级至15.5.2版本(使用Webpack而非Turbopack)时,出现错误:
Error: ObjectMiddleware.register: serializer for mini-css-extract-plugin/dist/CssModule/null is already registered.
解决方法
清理依赖缓存与重装
删除项目根目录及所有子包下的node_modules文件夹,同时删除根目录的锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行包管理器安装命令(如pnpm install、yarn install)。monorepo环境下多包依赖版本不一致或缓存残留是常见冲突诱因。强制统一
mini-css-extract-plugin版本
在根目录package.json中使用包管理器的版本锁定功能,强制所有子包使用与Next.js 15.5.2兼容的mini-css-extract-plugin版本:// npm/pnpm 用 overrides "overrides": { "mini-css-extract-plugin": "^2.8.1" } // yarn 用 resolutions "resolutions": { "mini-css-extract-plugin": "^2.8.1" }可通过
pnpm why mini-css-extract-plugin或npm ls mini-css-extract-plugin命令,查看Next.js 15.5.2实际依赖的插件版本,替换上述示例版本号。排查自定义Webpack配置
检查项目的next.config.js,如果存在手动引入并注册mini-css-extract-plugin的代码,直接移除。Next.js内部已集成该插件,手动注册会导致重复序列化器冲突。清理子包单独依赖
检查monorepo中各子项目的package.json,若存在单独安装mini-css-extract-plugin的情况,删除该依赖项,统一由根目录管理版本。
内容的提问来源于stack exchange,提问作者bensijons

