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

AWS Amplify部署出现DuplicateError重复文件或模拟包报错如何解决

AWS Amplify部署DuplicateError报错解决指南

DuplicateError: Duplicated files or mocks. Please check the console for more info

该报错核心原因是项目打包产物中存在重复路径/文件名的资源,或是测试类mock文件被误纳入打包范围,触发了Amplify的部署校验规则。以下为分步操作指引:

第一步:本地优先排查重复文件(最高效解决路径,优先操作)

  • 检查项目public文件夹和所有静态资源存放目录,是否存在同名文件(大小写不同也会被判定重复,比如logo.png和logo.PNG,Windows本地不区分大小写,部署到AWS环境会触发报错)
  • 检查测试类文件是否被纳入打包规则:查看package.json中build命令配置,确认__mocks__文件夹、*.test.js/*.spec.js这类测试相关文件已被排除在打包范围外
  • 本地执行一次构建命令(比如npm run build),打开生成的dist/build/out文件夹,全局搜索重复文件名,确认本地构建产物本身没有重复资源

第二步:修改AWS Amplify控制台构建设置(本地排查无问题时执行)

  1. 登录AWS控制台,搜索进入Amplify服务页,找到当前部署失败的项目
  2. 左侧菜单栏选择「构建设置」->「构建镜像设置」,点击「编辑」
  3. 对应你的项目框架修改构建命令:
    • React(create-react-app创建):将build命令修改为 GENERATE_SOURCEMAP=false npm run build(关闭sourcemap生成,大部分重复报错是sourcemap文件重复导致)
    • Next.js:将build命令修改为 npm run build && rm -rf .next/cache(清除构建缓存避免重复缓存文件被部署)
  4. 切换到「高级设置」->「环境变量」,点击「添加变量」,变量名填DISABLE_AMPLIFY_COMMANDER,值填true,保存配置
  5. 回到项目「部署」页面,点击「重新部署」即可

兜底解决方案

如果上述操作都无法解决,在项目根目录新建amplify.yml文件,内容如下,推送到代码仓库后重新触发部署即可:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
        # 自动删除构建产物中的重复文件
        - find build -type f -exec md5sum {} \; | sort -k 1 | uniq -w32 -d | cut -d' ' -f3 | xargs rm -f
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

报错参考截图

报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:54:07