Nuxt3集成@nuxtjs/i18n执行npm run generate时预渲染报错求解决
Nuxt3 + @nuxtjs/i18n 预渲染错误解决方案
在Nuxt3项目中引入@nuxtjs/i18n(版本^8.0.0-rc.4)后,执行npm run generate命令出现预渲染失败,移除该包则命令可正常运行。当前i18n配置如下:
modules: [ "@nuxtjs/i18n", ], i18n: { lazy: true, langDir: "locales", strategy: "prefix_and_default", locales: [ { code: "en", iso: "en-US", name: "English", file: "en.json" }, { code: "tr", iso: "tr-TR", name: "Türkçe", file: "tr.json" }, ], defaultLocale: "tr", }
解决方案:
检查语言文件路径与格式
确保项目根目录下存在locales文件夹,且en.json、tr.json文件存在且为标准JSON格式(无语法错误,比如多余逗号、未闭合引号等)。升级至稳定版i18n
RC版本可能存在未修复的预渲染相关bug,建议升级到最新稳定版:
npm install @nuxtjs/i18n@latest
- 明确指定预渲染路由
在nuxt.config.ts中添加generate配置,明确列出需要预渲染的路由(匹配你的语言策略):
export default defineNuxtConfig({ // ...其他配置 generate: { routes: ['/', '/en'] // 默认语言tr对应根路径,en对应/en路径 } })
- 关闭实验性特性
尝试在i18n配置中关闭可能导致预渲染冲突的实验特性:
i18n: { // ...现有配置 experimental: { jsTsFormatResource: false } }
排查路由冲突
确认项目pages目录下没有与i18n自动生成路由(如/en)冲突的文件或文件夹,避免路由重叠导致预渲染失败。清除缓存后重新构建
执行以下命令清除Nuxt缓存后重新生成:
npm run clean npm run generate
内容的提问来源于stack exchange,提问作者Göksel Doğan
相关产品推荐
相关产品推荐

