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

Nuxt项目启动时nuxt-i18n引发FATAL构建错误问题求助

Nuxt构建时nuxt-i18n路由插件语法报错修复

问题现象

启动Nuxt项目时触发FATAL级别构建错误,错误定位到.nuxt/nuxt-i18n/plugin.routing.js文件,提示模块解析失败,出现未识别的token。

具体编译报错

ERROR in ./.nuxt/nuxt-i18n/plugin.routing.js 222:47
Module parse failed: Unexpected token (222:47)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|       localeLocation: this.localeLocation,
|       // @ts-ignore
>       req: process.server ? this.$root.context?.req || this.$ssrContext?.req : null,
|       route: this.$route,
|       router: this.$router,
 @ ./.nuxt/index.js 17:0-84 259:13-47 260:10-44
 @ ./.nuxt/client.js
 @ multi ./.nuxt/client.js

错误调用栈

FATAL  Nuxt build error                                                                                                                                                                  

  at WebpackBundler.webpackCompile (node_modules\@nuxt\webpack\dist\webpack.js:2127:21)
  at processTicksAndRejections (node:internal/process/task_queues:96:5)
  at async WebpackBundler.build (node_modules\@nuxt\webpack\dist\webpack.js:2076:5)
  at async Builder.build (node_modules\@nuxt\builder\dist\builder.js:327:5)
  at async Object.run (node_modules\@nuxt\cli\dist\cli-build.js:110:7)
  at async NuxtCommand.run (node_modules\@nuxt\cli\dist\cli-index.js:413:7)

根因说明

报错行使用了ES2020标准的可选链操作符(?.),当前项目的Babel loader默认没有转译该语法,同时nuxt-i18n输出的文件没有做低版本语法兼容,导致Webpack解析失败,和服务端路由业务代码无关。删除.nuxt缓存、重装node_modules不会修改构建配置或依赖版本,因此无法解决问题。

修复方案

按优先级选择以下任意一种方案即可:

  • 降级nuxt-i18n到兼容版本(最快生效)
    7.3.0及以上版本的Nuxt2适配版nuxt-i18n存在未转译可选链语法的问题,直接锁定依赖到7.2.3版本即可:
    npm uninstall @nuxtjs/i18n
    npm install @nuxtjs/i18n@7.2.3 --save
    
    安装完成后重新执行构建命令即可。
  • 补充Babel转译配置(保留高版本nuxt-i18n)
    先安装可选链语法对应的Babel转译插件:
    npm install @babel/plugin-proposal-optional-chaining --save-dev
    
    随后修改项目根目录的nuxt.config.js,添加对应构建配置:
    export default {
      // 其余已有配置保持不变
      build: {
        babel: {
          plugins: ['@babel/plugin-proposal-optional-chaining']
        },
        transpile: ['@nuxtjs/i18n']
      }
    }
    
  • 升级Node运行时版本
    如果当前本地Node版本低于14.x,可选链语法无法被低版本Node原生识别,直接升级Node到14.x/16.x/18.x的长期支持版本,也可解决该语法兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:36:26