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

Google Cloud Functions部署报错:找不到'mkdirp-promise'模块

解决Google Cloud Functions部署时"Cannot find module 'mkdirp-promise'"的错误

这问题我之前帮人排查过好多次,本质就是依赖声明遗漏导致的。你的代码里调用了mkdirp-promise这个模块,但部署Cloud Functions时,它只会根据你项目根目录的package.json里的dependencies列表来安装依赖——没列进去的模块自然找不到。

具体解决步骤

  • 打开你函数项目里的package.json文件,找到"dependencies"区块
  • 添加"mkdirp-promise": "^5.0.1"(版本号可以用最新稳定版,npm官网能查到),比如:
    {
      "name": "image-converter-function",
      "dependencies": {
        "@google-cloud/storage": "^7.0.0",
        "mkdirp-promise": "^5.0.1"
      }
    }
    
  • 本地先运行npm install确保依赖安装完整,然后重新部署:
    gcloud functions deploy imageToJPG --runtime nodejs20 --trigger-resource YOUR_BUCKET_NAME --trigger-event google.storage.object.finalize
    
    (把nodejs20换成你用的Node.js版本,触发器参数根据你的需求调整)

你可能的操作疏漏

你从GitHub复制示例代码时,大概率只复制了index.js,没把示例配套的package.json一起拿过来——很多示例的依赖都是写在package.json里的,光拿业务代码肯定会缺依赖。下次复制示例项目时,记得把整个项目目录的文件都同步过来,尤其是package.json和package-lock.json。

同类参考示例

Google Cloud官方的Node.js Functions示例里有不少类似的图像处理场景:

  • 云存储触发的图片压缩/格式转换函数:这类示例会用到sharp(图片处理库)、@google-cloud/storage(云存储SDK),它们的package.json都会清晰列出所有依赖
  • 文件系统操作相关的函数:如果涉及创建目录、读写文件,官方示例会用标准的依赖管理方式,你可以参考它们的项目结构来规范自己的代码

另外,部署前一定要做个小检查:把代码里用到的所有第三方模块列出来,对照package.json里的依赖项,确保没有遗漏——这是Cloud Functions部署的基础要求,少一个都可能报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:14:12