You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:24:55