Yarn Workspace Monorepo+Next.js13环境下next-translate模块缺失求助
解决Yarn Workspace Monorepo + Next.js 13 + next-translate 模块找不到问题
问题场景
在Yarn Workspace Monorepo环境(Yarn Berry 3.5.0)中使用Next.js 13 + next-translate 2.0.1时,出现报错:Module not found: Can't resolve 'next-translate/appWithI18n',但单独Yarn Berry项目可正常运行。
项目配置
{ "name": "admin-coaching", "packageManager": "yarn@3.5.0", "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "analyze": "ANALYZE=true yarn build" }, "dependencies": { "@mdx-js/loader": "2.3.0", "@mdx-js/react": "2.3.0", "@next/mdx": "13.2.1", "next": "13.2.0", "next-translate": "2.0.1", "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { "@next/bundle-analyzer": "13.1.6", "@types/node": "18.13.0", "@types/react": "18.0.28", "next-translate-plugin": "2.0.2", "typescript": "4.9.5" } }
解决方案
- 统一安装Monorepo依赖:在Monorepo根目录执行
yarn install,确保子包依赖通过Yarn Berry的PnP机制正确关联,避免单独在子包目录执行安装操作。 - 配置Next.js转译依赖:在
next.config.js中添加transpilePackages配置,让Next.js正确解析next-translate的ES模块:/** @type {import('next').NextConfig} */ const nextConfig = { transpilePackages: ['next-translate'], // 其他原有配置 } module.exports = nextConfig - 升级依赖版本:next-translate 2.0.1与Next.js 13.2.0可能存在兼容性问题,执行
yarn upgrade next-translate next-translate-plugin升级到匹配的稳定版本。 - 验证PnP配置:检查Monorepo根目录的
.yarnrc.yml,确保nodeLinker: pnp已启用,且无排除next-translate相关包的配置。 - 确认导入路径:确保代码中
appWithI18n的导入路径正确,v2.x版本的正确写法为:import appWithI18n from 'next-translate/appWithI18n'
内容的提问来源于stack exchange,提问作者박정근
相关产品推荐
相关产品推荐

