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

Nuxt3(TypeScript)集成@nuxtjs/i18n时模板语法错误求助

Nuxt + TypeScript + @nuxtjs/i18n 集成报错排查

操作背景与步骤

使用TypeScript开发Nuxt应用,按文档指引集成@nuxtjs/i18n,操作步骤如下:

  • 执行依赖安装命令:yarn add @nuxtjs/i18n
  • 修改nuxt.config.ts配置:
modules: [
   '@nuxtjs/i18n'
],
i18n: {
  vueI18n: './config/i18n.config.ts' // 自定义配置路径
},
  • 配置~/config/i18n.config.ts:
import en from '../lang/en.json'
import zh_CN from '../lang/zh-CN.json'
export default defineI18nConfig(() => ({
    legacy: false,
    globalInjection: true,
    locale: 'en',
    fallbackLocale: 'zh-CN',
    messages: {
        en,
        zh_CN
    }
}))
  • 已准备对应语言文件zh-CN.json和en.json

出现的错误

  • VSCode编辑器提示:Identifier expected
  • 项目运行控制台报错:Pre-transform error: unknown: Unexpected token (16:40)

排查方向

1. 语言文件引用与配置key不匹配

当前i18n.config.ts中,fallbackLocale设置为'zh-CN',但messages中的key是zh_CN,两者不匹配会导致解析异常。需修改messages配置:

messages: {
    en,
    'zh-CN': zh_CN
}

同时确认语言文件路径正确,../lang/zh-CN.json确实存在于项目中。

2. 版本兼容性问题

不同Nuxt版本对@nuxtjs/i18n的要求不同:

  • Nuxt 3需使用@nuxtjs/i18n v8+版本
  • Nuxt 2对应旧版@nuxtjs/i18n
    若版本不匹配会引发语法解析错误,可执行yarn list @nuxtjs/i18n查看当前版本,对照官方文档确认兼容性。

3. 模板语法与I18n模式冲突

配置中设置了legacy: false,启用Vue I18n的Composition API模式。虽然开启了globalInjection: true,但可尝试在模板中改用{{ $i18n.t('auth.login') }}测试是否能正常解析,排除$t全局注入的异常。

4. 语言文件JSON格式错误

控制台的Unexpected token报错可能源于语言文件的JSON语法错误,比如逗号遗漏、引号不匹配、特殊字符未转义等。检查zh-CN.json和en.json是否为有效的JSON格式。

5. TypeScript配置缺失

确认tsconfig.json中包含Nuxt和@nuxtjs/i18n的类型支持,比如在compilerOptions.types中添加@nuxtjs/i18n,避免TypeScript对模板语法的误报。

内容的提问来源于stack exchange,提问作者Soldier 11

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:22:14