【问题标题】:Google Cloud Functions error: "Cannot find module 'sharp'" but it's in my package.jsonGoogle Cloud Functions 错误:“找不到模块 'sharp'”,但它在我的 package.json 中
【发布时间】:2020-11-28 10:07:10
【问题描述】:

我正在尝试将一个函数部署到 Google Cloud Functions。我基于他们的 ImageMagick tutorial

每次,函数都因为遇到错误而无法部署。看日志,错误是:

    Provided module can't be loaded. 
    Did you list all required modules in the package.json dependencies? 
    Detailed stack trace: 
    Error: Cannot find module 'sharp' 

我不知道为什么会这样,因为sharp 在我的package.json 依赖项中。如果我在 Google Cloud 控制台中打开该函数的 Web 编辑器,package.json 会作为文件之一出现,并将sharp 显示为依赖项。我尝试运行 npm installnpm install --save 并重新部署,但没有解决任何问题。

我在函数中包含const sharp = require('sharp'); 的包(这是日志显示发生错误的行),这是我的package.json

{
  "name": "Resize images",
  "version": "0.0.1",
  "private": true,
  "author": "James Tyner",
  "engines": {
    "node": ">=10.0.0"
  },
  "dependencies": {
    "@google-cloud/storage": "^5.0.0",
    "sharp": "^0.25.4"
  }
}

你能帮我弄清楚我做错了什么吗?

【问题讨论】:

  • 你能分享你的函数代码吗?我怀疑这个问题是因为云函数没有操作系统包libvips,这是sharp的要求,正如提到的在npm page
  • @J.A.Hernández 感谢您的跟进 — 不知何故,我能够解决这个问题,但我不完全理解我做了什么不同的事情。我发现在运行npm install 时没有安装package.json 中列出的依赖项,所以我创建了一个单独的文件夹并将我的代码复制到那里,在新文件夹中运行npm install,它从那里运行良好。从那时起,当我更改它们并重新部署函数时,依赖项一直正常工作。

标签: node.js npm google-cloud-functions sharp


【解决方案1】:

自从我被骗在项目目录中安装包以来,这种情况发生在我身上很多次。它在本地运行良好,但在您尝试部署时会产生错误。

当我将目录更改为 functions 文件夹而不是 firebase 项目文件夹并在其中安装包时,它对我有用

cd functions
npm install [your missing package] --save

【讨论】:

    【解决方案2】:

    使用 Node v12.13.1 和通过 webpack 到 GCP 和云功能的无服务器部署,我一直在努力解决这个问题。就我而言,它是一个不同的模块。问题是 node_modules 中的 no 模块可能需要或导入。如果查看 .serverless 目录中的 webpack zip 文件,原因就很清楚了。似乎在使用 GCP 时,实际上只包含了在 package.json 中表示为“main”的文件(通常是 index.js)。

    解决方案是调整 webpack.config.js 以明确包含那些丢失的文件。

    webpack.config.js

    【讨论】:

      【解决方案3】:

      不知何故,我能够解决这个问题,但我不完全理解我做了什么不同的事情。我发现在运行npm install 时没有安装package.json 中列出的依赖项,所以我创建了一个单独的文件夹并将我的代码复制到那里,在新文件夹中运行npm install,它从那里运行良好。从那时起,当我更改它们并重新部署函数时,依赖项一直正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-16
        • 2021-12-21
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 2018-11-14
        • 2020-12-09
        • 2020-10-14
        相关资源
        最近更新 更多