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

在AWS CodeBuild部署Next.js+React Big Calendar项目失败求助

解决AWS CodeBuild构建失败:@babel/runtime 找不到 ./helpers/esm/callSuper 路径的问题

核心原因分析

本地构建成功但CodeBuild失败,通常是依赖版本不一致或CI环境缓存干扰导致的——react-big-calendar依赖的@babel/runtime版本在CodeBuild环境中与本地不匹配,新版本的@babel/runtime移除了./helpers/esm/callSuper这个导出路径。

具体解决方案

1. 强制清理CI环境依赖缓存

直接在CodeBuild构建命令中清理旧依赖,确保安装全新的匹配版本:

rm -rf node_modules package-lock.json
npm install --force

如果用yarn:

rm -rf node_modules yarn.lock
yarn install --force

同时可以在CodeBuild项目设置中关闭依赖缓存功能,避免旧缓存残留。

2. 锁定@babel/runtime的兼容版本

查看react-big-calendar的package.json(可在node_modules/react-big-calendar/package.json中找到),找到它依赖的@babel/runtime版本,然后在你的项目package.json中手动锁定该版本:

"dependencies": {
  "@babel/runtime": "7.22.5" // 替换为react-big-calendar实际依赖的版本号
}

执行npm install更新后,重新触发CodeBuild构建。

3. 配置Next.js的Babel编译规则

在项目根目录创建或修改.babelrc文件,明确指定@babel/runtime的使用配置:

{
  "presets": ["next/babel"],
  "plugins": [
    ["@babel/plugin-transform-runtime", {
      "useESModules": true,
      "version": "7.22.5" // 与锁定的@babel/runtime版本保持一致
    }]
  ]
}

4. 更新react-big-calendar到最新兼容版

旧版react-big-calendar可能和Next.js 13.4.2、Node 18.6.0的环境不兼容,执行更新:

npm update react-big-calendar

本地测试构建通过后,再推送到CodeBuild验证。

5. 确保CodeBuild使用匹配的Node.js版本

在buildspec.yml中明确指定Node版本为18.6.0,避免版本差异导致的依赖解析问题:

phases:
  install:
    commands:
      - nvm install 18.6.0
      - nvm use 18.6.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:02:21