use*_*384 6 heroku node.js sharp
我正在将我的NodeJs应用程序部署到Heroku。在本地使用nodemon运行应用程序没有问题。
但是,当我尝试使用Heroku Master时,似乎是“ Sharp ”软件包引起了问题:
远程:----->安装依赖项
远程:安装节点模块(package.json + package-lock)
远程:
远程:> sharp@0.22.0 install / tmp / build_4cfeda2379ea362c72ac083b57638cce / node_modules / sharp
远程:>(节点安装/ libvips和&节点安装/ dll复制和&预构建安装)(node-gyp重建&&节点安装/ dll-copy)
远程:
远程:信息清晰下载 https://github.com/lovell/sharp-libvips/releases/download/v8.7.4/libvips-8.7.4-linux-x64.tar.gz
远程:
/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/sharp/install/libvips.js : 86远程:抛出新的Error(
Status ${response.statusCode}
);远程:^
远程:
远程:错误:状态403
远程:在/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/sharp/install/libvips.js:86:17
远程:在f(/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/once/once.js:25:25)
远程:位于ClientRequest.protocol.request.res(/tmp/build_4cfeda2379ea362c72ac083b57638cce/node_modules/simple-get/index.js:63:5)
远程:位于Object.onceWrapper(events.js:277:13)
远程:在ClientRequest.emit(events.js:189:13)
远程:位于HTTPParser.parserOnIncomingClient [as onIncoming](_http_client.js:556:21)
远程:位于HTTPParser.parserOnHeadersComplete(_http_common.js:109:17)
远程:位于TLSSocket.socketOnData(_http_client.js:442:20)
远程:位于TLSSocket.emit(events.js:189:13)
远程:在addChunk(_stream_visible.js:284:12)
远程:make:输入目录'/ tmp / build_4cfeda2379ea362c72ac083b57638cce / node_modules / sharp / build'
远程:TOUCH Release / obj.target / libvips-cpp.stamp
远程:CXX(目标)发行版/obj.target/sharp/src/common.o
远程:../src/common.cc:25:10:致命错误:vips / vips8:没有这样的文件或目录
远程:#include
远程的:^ ~~~~~~~~~~~~
远程:编译终止。
远程:Sharp.target.mk:128:目标'Release / obj.target / sharp / src / common.o'的配方失败
远程:make:*** [Release / obj.target / sharp / src / common.o]错误1
远程:make:离开目录'/ tmp / build_4cfeda2379ea362c72ac083b57638cce / node_modules / sharp / build'
更新:
尝试从package.json中删除sharp,然后使用npm install再次将其重新添加。这次我仍然不知道为什么。
远程:----->安装依赖项
远程:安装节点模块(package.json + package-lock)
远程:
远程:> sharp@0.22.0 install / tmp / build_5c8d3b01594e0b86f9d3e0d372534414 / node_modules / sharp
远程:>(节点安装/ libvips和&节点安装/ dll复制和&预构建安装)(node-gyp重建&&节点安装/ dll-copy)
远程:
远程:信息清晰下载 https://github.com/lovell/sharp-libvips/releases/download/v8.7.4/libvips-8.7.4-linux-x64.tar.gz
远程:添加了来自92个贡献者的57个软件包,并在10.683s中审核了20393个软件包
远程:发现62个严重程度较低的漏洞
远程:运行
npm audit fix
以修复它们,或npm audit
了解详细信息远程:
远程:----->构建
远程:
远程:----->缓存构建
远程:-node_modules
远程:
远程:----->修剪devDependencies
远程:在8.181秒内删除了606个软件包并审核了497个软件包
远程:发现0个漏洞
远程:
远程:
远程:----->构建成功!
有很多人有这个问题,它与 libvips 相关,因为依赖本身并不尖锐。
在这个问题评论中的github 上,问题得到了解释:
夏普的预建二进制文件只能保证与 libvips 的预建二进制文件一起使用。
如果下载预先构建的 libvips 二进制文件失败,那么sharp 必须退回到尝试从源代码构建自身。
http://sharp.pixelplumbing.com/en/stable/install/#pre-compiled-libvips-binaries提供有关从本地 URL 提供 libvips 二进制文件的信息。
下载失败的原因可能是缓存,或者像上面github上链接的问题中报告的那样下载损坏:
我不得不手动删除
~/.npm/_libvips/libvips-8.7.0-linux-x64.tar.gz
并重试。似乎下载了一个损坏的文件。
这是关于与 gatsby 相关的同一问题的有趣讨论,即使问题已关闭(在发表任何评论之前),解决方案似乎也不存在:https : //github.com/gatsbyjs/gatsby/issues/1754
但是,如果由于某种原因问题仅与下载有关,则可以按照手册中的说明在本地部署 libvips :
预编译的 libvips 二进制文件
此模块将尝试在以下任一条件下下载预编译的 libvips 包及其在 Linux 和 Windows 机器上的依赖项:
- 如果找不到满足最低版本
要求的libvips全局安装;- 如果
SHARP_IGNORE_GLOBAL_LIBVIPS
设置了环境变量。Run Code Online (Sandbox Code Playgroud)SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install sharp
如果您需要手动下载和检查这些文件,
您可以通过https://github.com/lovell/sharp-libvips/releases执行此操作如果您希望从您自己的位置安装这些,请设置
sharp_dist_base_url
npm 配置选项,例如Run Code Online (Sandbox Code Playgroud)npm config set sharp_dist_base_url "https://hostname/path/" npm install sharp
或设置
SHARP_DIST_BASE_URL
环境变量,例如Run Code Online (Sandbox Code Playgroud)SHARP_DIST_BASE_URL="https://hostname/path/" npm install sharp
使用
https://hostname/path/libvips-x.y.z-platform.tar.gz
.
所以这有点背景,我知道这不能真正被视为解决方案的答案:/
归档时间: |
|
查看次数: |
578 次 |
最近记录: |