【发布时间】: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 install 和 npm 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