Nuxt 3中使用@nuxtjs/seo与@nuxtjs/robots包报错求助
安装@nuxtjs/seo和@nuxtjs/robots包并添加至modules后,应用启动即报错,更换包版本仍未解决,终端错误输出翻译如下:
Error: 无法加载文件
/Users/erolsenol/my-projects/sosyal360-frontend/node_modules/.pnpm/unenv@2.0.0-rc.12/node_modules/unenv/dist/runtime/runtime/mock/empty.mjs(该文件由node_modules/.pnpm/nuxt-og-image@4.2.0_.../node_modules/nuxt-og-image/dist/runtime/server/og-image/satori/instances.js引入):ENOENT: 没有该文件或目录,打开 '/Users/erolsenol/my-projects/sosyal360-frontend/node_modules/.pnpm/unenv@2.0.0-rc.12/node_modules/unenv/dist/runtime/runtime/mock/empty.mjs'
解决方法
清理依赖缓存并重新安装
执行以下命令彻底重置依赖:pnpm store prune rm -rf node_modules rm pnpm-lock.yaml pnpm install锁定unenv稳定版本
在项目的package.json中添加pnpm覆盖规则,强制使用兼容的稳定版unenv:"pnpm": { "overrides": { "unenv": "^1.10.0" } }添加后重新执行
pnpm install确认版本兼容性
检查当前Nuxt版本与@nuxtjs/seo、@nuxtjs/robots的匹配关系,避免使用依赖预发布版unenv的包版本。例如Nuxt 3.10+建议搭配@nuxtjs/seo的最新稳定版。临时降级nuxt-og-image(若非必需)
如果项目暂时不需要og-image功能,可通过覆盖规则降级该子依赖:"pnpm": { "overrides": { "@nuxtjs/seo>nuxt-og-image": "4.1.0" } }
内容的提问来源于stack exchange,提问作者Erol Senol

