现象
在FastGPT 4.6.9定制开发后升级Next.js到14版本,改用turbopack作为打包工具,合并4.8.x版本代码时,出现报错:Error: The packages specified in the 'transpilePackages' conflict with the 'serverComponentsExternalPackages': mongoose, pg。
可能原因
该报错源于FastGPT 4.8-preview版本新增的Next.js配置项冲突。具体配置包括transpilePackages: ['@fastgpt/*', 'ahooks', '@chakra-ui/*', 'react'],同时experimental配置中设置了serverComponentsExternalPackages: ['mongoose', 'pg']与optimizePackageImports: ['mongoose', 'pg']。Next.js 14中serverComponentsExternalPackages的优先级高于transpilePackages,当两者配置存在关联逻辑冲突时,触发该报错。
排查步骤
- 确认项目基于FastGPT 4.6.9定制开发,已升级Next.js到14版本并使用turbopack打包工具。
- 打开项目的next.config.js文件,查看transpilePackages与experimental.serverComponentsExternalPackages的配置内容。
- 核对两个配置项的包列表,确认是否存在触发冲突的配置组合。
- 运行项目,复现指定的报错文本。
解决与验证
根据报错提示与配置分析,需调整next.config.js中的配置项。首先确保transpilePackages与serverComponentsExternalPackages的包列表不会产生优先级冲突,可将serverComponentsExternalPackages中的包从transpilePackages中移除,或按照Next.js 14的配置规则优化配置。修改配置后重新启动项目,确认报错不再出现,项目可正常运行。