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

部署在Vercel的Express应用缺失依赖:Firebase Storage模块报错

Firebase Storage API部署Vercel报错:找不到模块'../deps/dicer/lib/Dicer'

问题描述

我给Firebase Storage里的文件做了个简易API,部署到Vercel后日志报firebase/storage相关错误,提示找不到模块../deps/dicer/lib/Dicer,还问是不是没把它加到package.json的dependencies里。这是我第一次在Vercel部署用Firebase的Serverless Express应用,没处理过这种异常,求解决办法。

我的代码端点&导入部分:

const app = require('express')();
const cors = require('cors');
const firebaseApp = require('./config/firebase');
const { getDownloadURL, getStorage, listAll, ref } = require('firebase/storage');
require('dotenv').config();

const storage = getStorage(firebaseApp);

app.use(cors());

app.get("/img", async (req, res) => {
  const storageRef = ref(storage, "img");

  const images = await listAll(storageRef);

  const imgs = await Promise.all(
    images.items.map((item) => getDownloadURL(item))
  );

  return res.status(200).json({
    ok: true,
    message: "Images fetched successfully",
    data: imgs,
  });
});

vercel.json配置:

{
  "version": 2,
  "builds": [
    {
      "src": "index.js",
      "use": "@now/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "index.js"
    }
  ]
}

解决办法

1. 清理依赖重新安装

  • 删除本地的node_modules文件夹和package-lock.json(或yarn.lock)
  • 执行npm install(或yarn install)重新拉取所有依赖
  • 检查package.json,确保firebase、firebase/storage这些依赖都在dependencies字段里,别放到devDependencies里——Vercel部署时默认不会安装devDependencies里的包

2. 统一Firebase依赖版本

不同版本的firebase和firebase/storage可能存在依赖兼容问题,导致某些子依赖缺失:

  • 执行npm list firebase firebase/storage查看当前版本
  • 如果版本不一致,升级到最新稳定版:npm install firebase@latest --save
  • 或者指定一个兼容的固定版本,比如npm install firebase@9.23.0 --save(版本号可按需调整)

3. 更新Vercel构建配置

你用的@now/node是旧版Vercel Node构建器,现在官方推荐用@vercel/node,同时可以强制指定安装命令确保依赖完整:
修改vercel.json为:

{
  "version": 2,
  "builds": [
    {
      "src": "index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "index.js"
    }
  ],
  "installCommand": "npm install"
}

4. 手动添加dicer依赖

如果上面的方法都没解决,直接把缺失的dicer包加到依赖里:

  • 执行npm install dicer --save
  • 重新部署到Vercel,此时构建环境会自动安装这个包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:37:51