乐趣区

关于node.js:记录下安装新版sharp的折腾史

前两天顺手降级了一下 sharp 的依赖到最新版(0.25.4),后果捅了马蜂窝,cnpm, npm 均告失败,折腾了良久才解决,好郁闷,这里顺便记录一下。

cnpm 遇到的问题

就是新版 sharp 的装置脚本会主动去 github 的 releases 外面下载预编译好的 libvips 二进制包,这个货色并不能通过 cnpm 的淘宝仓库减速,然而因为家喻户晓的起因,国内下载 github 的 releases 那不是慢的问题,是间接卡死……

npm 遇到的问题

第二步,尝试一下 npm 加代理吧,本人有个始终用的小机场的,因而首先须要在 Linux 上装置一个 python 版某乳客户端,不过 py 版外面不像 C# 版自带 privoxy,因而只能间接作为 socks5 代理应用,设置为 npm 代理:

npm config set proxy "socks5://localhost:1080"
npm config set https-proxy "socks5://localhost:1080"

尝试 npm install sharp 来装置,后果还是不行!看了下错误信息:

info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.9.1/libvips-8.9.1-linux-x64.tar.gz
ERR! sharp tunneling socket could not be established, cause=Parse Error: Expected HTTP/

竟然不能用 socks5 代理,还必须得用 HTTP!好烦!

装置 Privoxy

C# 版的某乳客户端就是用 privoxy 来把 socks5 代理转换为 http 代理的,因而在 linux 上如法炮制:

# 装置 privoxy,centos 下用 yum
apt-get install privoxy
# 批改 privoxy 配置文件,在开端增加一行(留神最初的.):# forward-socks5 / 127.0.0.1:1080 .
vi /etc/privoxy/config
# privoxy 作为服务启动
service privoxy start
# 验证一下 HTTP 代理是否失常
curl -x localhost:8118 https://www.baidu.com
# 把 npm 的代理设置为 http
npm config set proxy "http://localhost:8118"
npm config set https-proxy "http://localhost:8118"

从新运行npm install sharp,终于失常了!

退出移动版