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

Nuxt 2.15.7 ESLint解析错误: 加载ES Module需使用import的解决方案问询

解决方案(均无需调整Babel编译配置)

错误根因

你遇到的报错本质是已停止维护的babel-eslint解析器仅支持CommonJS格式的ESLint依赖,而项目中安装的ESLint版本过高,其依赖的eslint-scope@8.x默认采用ESM格式导出,导致CommonJS的require()调用失败。

优先推荐方案:固定eslint-scope版本(风险最低,零配置修改)

该方案仅锁定依赖版本,完全不碰现有业务、ESLint、Babel配置,适合团队限制修改配置的场景:

  1. 按照你使用的包管理工具,在项目package.json中新增对应字段:
    • 如果你用npm >=8.3.0,新增overrides字段:
    {
      "overrides": {
        "eslint-scope": "^7.2.2"
      }
    }
    
    • 如果你用yarn,新增resolutions字段:
    {
      "resolutions": {
        "eslint-scope": "^7.2.2"
      }
    }
    
  2. 删除项目下的node_modules文件夹,以及对应的锁文件package-lock.json(npm)或yarn.lock(yarn)
  3. 重新执行依赖安装命令
  4. 重启VS Code即可,报错会直接消失

备选方案1:降级ESLint到7.x版本

ESLint 7.x版本依赖的eslint-scope为CommonJS格式,和babel-eslint天然兼容,同样不需要修改Babel配置:

  1. 执行命令卸载现有ESLint:
    npm uninstall eslint 或 yarn remove eslint
  2. 安装7.x版本的ESLint:
    npm install eslint@7.32.0 --save-dev 或 yarn add eslint@7.32.0 --dev
  3. 重装依赖后重启VS Code即可

备选方案2:替换ESLint解析器(仅修改ESLint配置,不碰Babel编译配置)

如果允许修改ESLint配置,可以用Babel官方替代babel-eslint的@babel/eslint-parser,不需要修改Babel的编译规则:

  1. 先把你之前改成ES6模块格式的eslintrc.js改回原来的CommonJS格式(用module.exports导出)
  2. 执行命令卸载旧解析器:
    npm uninstall babel-eslint
  3. 安装新解析器:
    npm install @babel/eslint-parser@7.17.0 --save-dev
  4. 修改eslintrc.js中的parser配置:
parserOptions: {
  parser: '@babel/eslint-parser',
  requireConfigFile: false
}
  1. 重启VS Code即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:06:03