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

升级Node.js后npm启动报Babel版本不兼容及ES模块语法错误

问题排查与解决步骤

1. 解决Babel版本冲突问题

Babel版本报错是因为npm和yarn的依赖提升逻辑不同,yarn加载了正确的7.x版本@babel/core,而npm错误加载了隐式安装的6.x旧版babel-core:

  • 执行以下命令检查本地安装的Babel版本:
npm ls babel-core
npm ls @babel/core

如果输出中存在babel-core@6.x.x版本,说明存在旧版依赖冲突。

  • 强制指定Babel版本:在package.json中新增resolutions字段,统一Babel核心库版本:
{
  "resolutions": {
    "babel-core": "npm:@babel/core@^7.22.0"
  }
}
  • 清理缓存重新安装依赖:
rm -rf node_modules package-lock.json
npm install

npm 8.3及以上版本原生支持resolutions字段,低版本需要先安装npm-force-resolutions工具执行预安装

2. 解决ES模块语法报错问题

Cannot use import statement outside a module报错是因为Babel加载失败后,没有转译ES模块的import语法,Node默认将.js文件识别为CommonJS模块导致的,解决Babel版本问题后该报错会自动消失。如果仍存在可选用以下任意方案:

  • 方案一:开启Node原生ES模块支持,在package.json中新增配置:
{
  "type": "module"
}

如果使用该方案,Babel配置文件后缀需要改为.cjs(如babel.config.cjs),避免Node识别为ES模块报错

  • 方案二:确认启动脚本使用Babel转译,检查package.json中scripts配置的start命令是否正确调用@babel/node:
{
  "scripts": {
    "start": "nodemon --exec babel-node server.js"
  }
}

同时确认根目录下Babel配置文件(.babelrc或babel.config.json)包含正确的预设配置:

{
  "presets": ["@babel/preset-env"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:57:03