我正在把我的NodeJs应用程序部署到Heroku。在本地运行该应用程序没有任何问题。
然而,当我试图推到Heroku时,似乎"锐利“包引起了一个问题:
远程:->安装依赖关系远程:安装节点模块(package.json + package-lock)远程:>package.json@0.22.0安装https://github.com/lovell/sharp-libvips/releases/download/v8.7.4/libvips-8.7.4-linux-x64.tar.gz远程:>(节点安装/libvips&节点安装/dll && prebuild)\ 遥控器: /tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/sharp/install/libvips.js:86 remote:引发新错误(
Status ${response.statusCode});远程:^ remote: States403Remote: at /tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/sharp/install/libvips.js:86:17 远程:在f (/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/once/once.js:25:25) 远程:在(/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/simple-get/index.js:63:5) ClientRequest.protocol.request.res 远程: at Object.onceWrapper (events.js:277:13)远程: at ClientRequest.emit (events.js:189:13) remote: at HTTPParser.parserOnIncomingClient as onIncoming remote: at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17) remote: at TLSSocket.socketOnData (_http_client.js:442:20) 远程: at TLSSocket.emit (events.js:189:13) remote: at addChunk (_stream_readable.js:284:12) remote: make:输入目录events.js:189:13 远程:触摸发布/obj.Target/libvips-cpp.STAMP远程:CXX(目标)发布/obj.Target/sharp/src/Common.o远程:../src/common.cc:25:10:致命错误:vips/vips 8:没有这样的文件或目录远程:#包括远程:^~远程:编译终止。远程: remote:'/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/sharp/build‘:sharp.target.mk:128: sharp.target.mk:128:sharp.target.mk:128//src/Common.o错误1 remote: make:#en0#目录
更新:
尝试从package.json中删除sharp并使用npm重新添加它,这次安装锐利工程.我还是不知道为什么。
远程:->安装依赖关系远程:安装节点模块(package.json + package-lock)远程:>package.json@0.22.0安装https://github.com/lovell/sharp-libvips/releases/download/v8.7.4/libvips-8.7.4-linux-x64.tar.gz远程:>(节点安装/libvips&节点安装/dll && prebuild)\ remote:从92个贡献者中添加了57个包,在10.683 s远程中审计了20393个包:发现了62个低严重漏洞remote:运行
npm audit fix修复它们,或运行npm audit获取远程信息:->构建远程:->缓存生成远程:- node_modules远程: remote:找到0个远程漏洞:
发布于 2019-04-08 01:36:01
有很多人都有这个问题,这与libvips有关,因为依赖本身并不尖锐。
在这个问题-评论中的github上,解释了以下问题:
预构建的夏普二进制文件只能保证与预先构建的libvips二进制文件一起工作。 如果预先构建的libvips二进制文件的下载失败,那么夏普就不得不回到试图从源代码构建自己的位置。 http://sharp.pixelplumbing.com/en/stable/install/#pre-compiled-libvips-binaries提供了有关从本地URL为libvips二进制文件提供服务的信息。
下载失败的原因可能是缓存或损坏的下载,如上述github链接问题中所报告的:
我不得不手动删除
~/.npm/_libvips/libvips-8.7.0-linux-x64.tar.gz,然后再试一次。似乎被下载了一个损坏的文件。
这里有一个关于盖茨比问题的有趣的讨论,一个解决方案似乎还不存在,即使这个问题已经结束(在发表任何评论之前):https://github.com/gatsbyjs/gatsby/issues/1754
但是,如果由于某种原因,问题仅与下载有关,则可以在本地部署libvip,如手册中所解释的那样:
预编译libvips二进制文件 本模块将尝试在以下两种情况下下载预编译的libvip及其对Linux和Windows机器的依赖关系:
SHARP_IGNORE_GLOBAL_LIBVIPS环境变量。SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm安装锐利
如果您需要手动下载和检查这些文件,
您可以通过https://github.com/lovell/sharp-libvips/releases这样做。
如果希望从自己的位置安装这些文件,请将
sharp_dist_base_url npm配置选项,例如:
配置集sharp_dist_base_url "https://hostname/path/“npm安装锐利
或者设置SHARP_DIST_BASE_URL环境变量,例如
SHARP_DIST_BASE_URL="https://hostname/path/“npm安装锐利
使用https://hostname/path/libvips-x.y.z-platform.tar.gz。
所以这是一个小背景,我知道这并不能被看作是解决方案的答案:/
发布于 2020-11-26 20:54:41
如果有人到达这里却没有找到答案--我的问题是我的项目使用的是旧节点版本(8.x)
解决方案将安装支持8.x - "sharp": "0.23.4"的最新版本sharp。
https://stackoverflow.com/questions/55414263
复制相似问题