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

本地运行AdminBro.bundle路径正常,部署Vercel提示文件不存在是什么原因?

问题原因

这个报错是Vercel部署环境的运行目录结构和本地不一致、自定义组件文件未被打包到Vercel Lambda运行时目录两个原因共同导致的:

  1. 你当前用的相对路径是基于项目根目录寻址的,但Vercel Lambda的运行时工作目录和本地开发的根目录不匹配,相对路径定位失效
  2. Vercel构建时默认会剔除未被静态引用的源码文件,你传入的字符串路径不会被Vercel识别为依赖,组件文件不会被打包到最终的运行环境中

解决方案

  • 改用绝对路径定位组件文件
    用Node内置的path模块配合__dirname生成和当前文件位置绑定的绝对路径,避免运行目录差异导致的寻址错误。修改你routes/admin.js里的代码:

    // 顶部先导入path模块
    const path = require('path')
    
    // 原有配置修改为
    imagePath: {
      isVisible: { list: false, filter: false, show: true, edit: true },
      components: {
        show: AdminBro.bundle(
          path.resolve(__dirname, '../components/admin-imgPath-component.jsx')
        ),
      },
    },
    

    注意调整../的层级,保证从admin.js所在的routes目录出发,能正确指向组件文件的位置。

  • 配置Vercel强制包含组件目录
    在项目根目录新建/修改vercel.json配置文件,指定要把自定义组件目录打包进Lambda运行包:

    {
      "functions": {
        "app.js": { // 替换为你项目的实际入口文件路径,比如api/index.js
          "includeFiles": "components/**/*"
        }
      }
    }
    
  • 额外排查项

    • 检查项目的.gitignore和.vercelignore文件,确认components目录没有被加入忽略列表
    • 如果你升级了AdminBro到改名后的AdminJS版本,确保路径配置符合新版的组件注册规范

内容的提问来源于stack exchange,提问作者Ruthvik Chandra Vanam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:12:02