使用 gatsby cli 生成一个新的站点时,卡在安装`pngquant-bin`的临时解决办法

XYShaoKang

gatsby#20389

原因:

原因是gatsby生成的默认站点会依赖一个包pngquant-bin

gatsby-starter-default@0.1.0
└─┬ gatsby-plugin-sharp@2.6.1
  └─┬ imagemin-pngquant@6.0.1
    └── pngquant-bin@5.0.2

pngquant-bin会根据不同的平台,去raw.githubusercontent.com下载对应的二进制文件,当下载失败时,会从源码开始开始编译生成二进制文件,如果失败,则报错.

因为总所周知的原因,raw.githubusercontent.com在国内是被墙的.而当我们又不具备能编译pngquant-bin的环境时,导致安装失败.

imagemin/pngquant-bin#110 中有一个修复方案,可以使 bin 的下载地址可配置,不过好像并不顺利

解决办法:

经过 @Renchongyi提醒,可以通过设置HTTP_PROXY或者用npm config set proxy来设置代理,只是必须是http协议的代理.支持的配置方式

  1. (作为临时方案有效)如果使用的yarn的话,第一次安装失败之后,找到缓存中npm-pngquant-bin-5.0.2-6f34f3e89c9722a72bbc509062b40f1b17cda460-integrity/node_modules/pngquant-bin/lib/index.js,修改下载源url,将raw.githubusercontent.com/imagemin修改为npm.taobao.org/mirrors,然后重新安装即可.使用yarn cache dir 可以打印出yarn缓存的位置
  2. 使用全局代理或者 vpn,或者使用像Proxifier的软件专门代理node中的流量
  3. 如果内网有类似Nexus私服的话,直接克隆pngquant-bin,将下载源修改掉,发布到私服上即可.
  4. 可以配置编译环境,让pngquant-bin能够通过编译生成,不过这并非我所长,所以没法提供更多建议.
阅读 1.8k
3.2k 声望
66 粉丝
0 条评论
3.2k 声望
66 粉丝
文章目录
宣传栏